1,变量:几个特殊需要注意的变量,其它自定义变量不做阐述。
1)$n:$0:该脚本名称,$1....:代表第几个参数;
2)$#:获取所有参数个数,常用于循环;
3)$*,$@:代表命令行中所有参数。$*把所有参数看成一个整体,而$@把所有参数单独看待,注意在for循环中使用时,加引号和不加引号的却别($*和$@ 在不加引号的情况下是一致的结果;加了引号,$*则表示一个整体,$@则把参数分开);
4)$?:代表最后一行命令执行状态,0代表命令正常执行,非0则代表命令执行不正确,具体是什么数字,可以自定义;
2,cut工具:该工具即为‘剪’的意思,就是用来剪切数据用的。cut命令可以实现从文件中的每一行剪切字符、字节、字段,并且输出。
该工具有2个参数:-f(提取第几列) ,-d(分割列的分隔符)
例如:有如下数据,切分出第一列的数据
vim cut.txt
dong shen
guan zhen
wo wo
lai lai
le le
cut -f 1 -d " " cut.txt
3,sed工具:是一个流编辑器,每次处理一行内容。
1)基本用法
sed [选项参数] ‘command’ filename
2)选项参数说明
选项参数 |
功能 |
-e |
直接在指令列模式上进行sed的动作编辑。 |
3)命令功能描述
命令 |
功能描述 |
a |
新增,a的后面可以接字串,在下一行出现 |
d |
删除 |
s |
查找并替换 |
4)例子:
将“mei nv”这个单词插入到sed.txt第二行下,打印
sed '2a mei nv' sed.txt
4,awk工具:一个强大的文本分析工具。
1)基本用法
awk [选项参数] ‘pattern1{action1} pattern2{action2}...’ filename
pattern:表示AWK在数据中查找的内容,就是匹配模式
action:在找到匹配内容时所执行的一系列命令
2)选项参数说明
选项参数 |
功能 |
-F |
指定输入文件折分隔符 |
-v |
赋值一个用户定义变量 |
3)例子:
只显示以root开头的/etc/passwd的第一列和第七列,以逗号分割,且在行前面添加列名"begin print"在最后一行添加"end print"。
awk -F: 'BEGIN{print "begin print"} /^root/ {print $1","$7} END{print "end print"}' /etc/passwd
5,sort工具:对文件行进行排序,并将排序结果标准输出。
1) 基本语法
sort(选项)(参数)
选项 |
说明 |
-n |
依照数值的大小排序 |
-r |
以相反的顺序来排序 |
-t |
设置排序时所用的分隔字符 |
-k |
指定需要排序的列 |
参数:指定待排序的文件列表
2)实例
vim sort.sh
bb:40:5.4
bd:20:4.2
xz:50:2.3
cls:10:3.5
ss:30:1.6
根据第三列倒序排序
sort -t: -nrk 3 sort.sh
awk -F: '/^root/{print $7}' passwd