sed
Sed是一个流处理编辑器,它能帮助我们自动处理文件、分析日志文件、
修改配置文件等。
Stream Editor文本流编辑,sed是一一个“非交互式的"面向字符流的编
辑器。能同时处理多个文件多行的内容
可以不对原文件改动, 把整个文件输出到屏幕
可以把匹配到的内容输出到屏幕上
还可以对原文件改动, 但是不会再屏幕上返回结果
cat sed.test | sed -n '/2222/p' 查看带有2222的行
sed -e '2a hello world' sed.test 第三行内容添加为hello
cat -n sed.test | sed--e '2,3d' 删除2到3行
cat sed.test | sed '/22222/d' 删除带22222的行
cat -n sed.test |sed '1,2c hahaha 讲1-2替换hahaha
sed 's\Heha\g' sed.test 将hello换成heha
-------------------------------------------------------------------
awk
awk是一种编程语言。用于在linux/unix 下对文本和数据进行处理。它支持用户
自定义函数和动态正则表达式等功能,是linux/unix 下的一一个强大编程工具。
awk命名来自于三位创始人Alfred Aho, Peter Weinberger,和Brian
Kernighan的Family Name的首字符。
awk的处理方式
awk- -次处理- -行内容
awk对每行可以切片处理,空格和制表符为默认分隔符将每行切片切开的部分再进行
各种分析处理
cat /etc/passwd | awk -F : '{print $1}' 分割显示第一列的用户
cat /etc/passwd | awk -F :' 'BEGIN {print "start1,start7"} {print $1
"," $7} END {print " end1,end7"}'
显示/etc/ passwd的第1列和第7列,用逗号分隔显示,所有行开始前添加
列名start1, start7, 最后- -行添加,end1, end7
cat /etc/passwd | awk -F :'$1 ~ /00/' 匹配某段字符
head -n5 /etc/passwd| awk -F : '{ print NR" "NF”"$0}'
显示/etc/passwd的前五行,显示每行的行号、列数,以及该行完整的内
容
cat /etc/passwd | awk -F : '$3=="0"' 这里操作付亏可以用二=。>。>=。
≤,<=.=都是可行和数字比较时,将数字要用双引号“"'引起来,表示字符串,不加引号表示数字
cat /etc/passwd| awk -F : $3==” 0
----------------------------------------------------------------------------------
------------------------------------------------------
head -n4 /etc/passwd | awk -F :f(sum=sum+ $3);END{print sum}'
累加前四行用户的uid
cat /etc/passwd | awk -F ':'{if ($1 > "q"){ print $1 } else { print}}'
输出第一个字段的第-个字符大于q的行