1.cut
cut的工作就是剪,具体的就是说在文件中负责剪切数据用的,cut命令从文件中的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。
1)基本用法
cut [选项参数] filename
大多数是配合管道符使用。
2)选项参数说明
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列,默认是制表符 “\t”
-c 按照字符进行切割,后加n表示取第几列,比如 -c 1 取第1列
#示例
cut -d " " -f 1 xx.txt 使用空格作为分隔符,截取第一列
cut -d " " -f 1,2 xx.txt 使用空格作为分隔符,截取第二三列
配合管道符使用
cat /etc/passwd | grep bash$ | cut -d “:” -f 1,6,7
2.awk
一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
查看当前系统下使用存在awk命令
which awk
1)基本用法
awk [选项参数] ‘/pattern1{action1} /pattern2{action2}…’ filename
pattern 表示awk在数据中查找的内容,就是匹配模式
action 在找到匹配内容时所执行的一系列命令(脚本)
2)选项参数说明
-F 指定输入文件分隔符
-v 赋值一个用户定义变量
示例
cat /etc/passwd | awk -F “:” '/^root/{print $7} ’ 截取以root开头且以:为分隔的第七列
cat /etc/passwd | awk -F “:” '/^root/{print $7",“$6} ’
cat /etc/passwd | awk -F “:” '/^root/{print $7”,“$3”,“$6} ’ 注意双引号
使用BEGIN 输出表头,end输出表尾。
cat /etc/passwd | awk -F “:” 'BEGIN{print “user,shell”}{print $7”,“$3”,"$6} END{print "end of file "} ’