sed
sed:流处理编辑器,帮我我们自动处理文件,分析日志文件,修改配置文件等。
查找包含字符的行
cat 1.txt | sed -n 'abc/p' //查找1.txt中包含abc的行。
添加文件内容
sed -e '2a hello word' 1.txt //在第2行添加hello word。
删除文件内容
cat -n 1.txt | sed -e '2,3d' //删除2到3行。
删除包含字符的行
cat 1.txt | sed '/abc/d' //删除包含abc的行
替换行
cat -n 1.txt | sed '1,2c abc' //将1,2行替换成abc
替换字符串
sed 's/abc/aaa/g' 1.txt //将1.txt中的abc替换成aaa。
上面操作中只是用cat输出显示修改过得内容,但实际内容并没有被修改。
若要修改文件则要加上- i。
sed -i 's/abc/aaa/g' 1.txt //将将1.txt中的abc替换成aaa
swk
一种编程语言,在linux/unix下对文本进行处理,支持用户自定义函数和动态的正则表达式,是linux和unix下的一个强大的编辑工具。
cat /etc/passwd | awk -F : ‘{print()}’ //显示/etc/passwd的第一列,及用户名列
cat ./etc/passwd | awk -F ':' 'BEGIN {print "start1,start7"} {print $1 ",",$7} END {print "end1,end7"}'
显示/etc/passwd下的第1至第7列,并在前面添加列名,后面加end。
cat /etc/passwd | awk -F : '$1~/xx/' //匹配xx字符。
head -n5 /etc/passwd | awk -F : '{print NR " " NF " "$0}' //显示/etc/passwd的前五行,显示行号列数,内容