1.cut字段提取命令
2.printf命令
3.awk命令
4.sed命令
cut命令:
[root@localhost ~]# cut [选项] 文件名
选项:
-f 列号 :提取第几列
-d 分隔符 :按照指定分隔符分割列,默认为制表符分割
eg:
获取/etc/passwd中第1列和3列值,分割符为:
cut -d ":" -f 1,3 /etc/passwd
与命令一起使用,用管道符隔开
[root@localhost ~]# grep “/bin/bash” /etc/passwd |grep -v "root" | cut -f 1 -d ":"
printf命令
printf '输出类型' 输出内容
输出类型:
输出格式:
eg:
[root@localhost ~] printf %s 1 2 3 4 5 6
结果打印为:123456
[root@localhost ~] printf '%s %s %s' 1 2 3 4 5 6
结果打印为:1 2 34 5 6
[root@localhost ~] printf '%s\t%s\t%s\n' 1 2 3 4 5 6
1 2 3
4 5 6
awk命令:
awk '条件1{动作1}条件2{动作2}...' 文件名
条件:
动作:
eg:获取student.txt文件中第2列和第4列数据
awk '{print $2 "\t" $4 "\n"}' student.txt
与系统命令一起使用:df -h | awk '{print $1 "\t" $3}'
与BEGIN一起使用 : awk ’BEGIN{print "首行输出的内容"} {print $2 "\t" $4 }‘ student.txt
与end一起使用: awk ’END{printf "结尾输出的内容"} {print $2 "\t" $4}‘ student.txt
分割符不是空格和制表符时,需要用FS指定分割符
FS内置变量:cat /etc/passwd |grep "/bin/bash" | awk 'BEGIN {FS=":"}{print $1 "\t" $3}'
注意:要加上BEGIN,否则第一行的数据会输出整行
关系运算符
cat student.txt | awk '$4 >=70 {print $2 }'
sed命令
sed 一种几乎包括在所有unix平台(包括linux)的轻量级流编辑器。sed主要是用来将数据进行选取,替换,删除,新增的命令
sed [选项] ’[动作]‘ 文件名
选项:
动作:
行数据操作:
#查看文件的第二行(注意需要加选项参数 -n,否则会输出整个文件内容)
sed -n '2p' student.txt
#删除文件的第二行内容
sed '2d' student.txt
#删除第二行到第四行内容
sed '2,4d' student.txt
#在第二行后追加内容
sed '2a 追加的内容' student.txt
#在第二行前插入两行数据
sed '2i 插入内容' student.txt
#数据替换:替换第二行内容
sed '2c 替换的内容' student.txt
#字符串替换:将第三行中xiaohua替换xiaoming
sed '3s/xiaohua/xiaoming/g' student.txt
#sed操作的数据直接写入文件,使用-i选项
sed -i '3s/xiaohua/xiaoming/g' student.txt
#同时把‘xiaohua’ 和‘xiaoming’替换为空,使用-e选项
sed -e 's/xiaohua//g;s/xiaoming//g' student.txt