2.4/2.5 sed
1、sed 工具比grep 复杂。与grep 不一样的就是不能颜色显示。
2、实例:
1、sed -n ’10’p 1.txt : 打印10行,注意-n 参数。
2、 sed -n ’30,$’p 1.txt : 从30行到末尾行
3、 sed -n ‘/root/‘p 1.txt : 包含root 的行
4、sed -n ‘/r.o/‘p 1.txt : 一个
5、sed -n ‘/r*o/‘p 1.txt :一个或多个
6、sed -n ‘/r\?o/‘p 1.txt : 注意脱意字符
7、sed ‘/^$/‘d 1.txt : 删除空行
8、sed ‘1,19’d 1.txt :删除1-19行
3、 参数:
-r :不需要再加脱意转换。
-i : 删除文本内容参数,一般不建议使用。
查找替换,与vim 的类似。
4、替换功能:
sed ‘1,10s/nologin/login/g’ 1.txt
1-10行 ,g 全局 ,将nologin 替换为login 。
sed ‘1,10s/\/sbin\/nologin/login/g’ 1.txt
sed ‘1,10s#/sbin/nologin#login#g’ 1.txt
上面两个同理一样。
sed ’s#/sbin/nologin#login#g’ 1.txt 全局替换。
sed ’s#^.*$#login#g’ 1.txt : 将一整行修改为login
sed ’s#^.*$#&login#g’ 1.txt :每行的末尾加上login
sed ’s#[0-9]# #g’ 1.txt : 将每行的数字删除。
sed ’s#[^0-9a-zA-Z]##g’ 1.txt : 将特殊符号删除。
sed ’s#(^[a-z]+)(:.*:)(.*$)#\3\2\1#g’ 1.txt 将:最前和最后的互换位置。
sed -n ‘/root/p; /aming/p’ 1.txt : 用; 可以将多个条件打印。
sed -n -e ‘/root/p’ -e ‘/aming/p’ 1.txt 同理上面。
2.6 /2.7/2.8 awk
1、awk 优势:
能实现更多的功能,比如分段。
2、参数 :
-F : 后跟分割符号,’:'
实例:
# awk -F ‘:’ ‘{print $3}’ 1.txt : 打印第三段
# awk -F ‘:’ ‘{print $3,$4}’ 1.txt : 打印第三段,第四段。
# awk -F ‘:’ ‘OFS=“:"{print $3}’ 1.txt :
# awk ‘/user/‘ 1.txt
3、awk 不支持 {} 。
4、条件操作符:
实例:
# awk -F ‘:’ ‘$1==“root"’ 1.txt
# awk -F ‘:’ ‘$1==“root” || $7~/nolog/‘ 1.txt
5、awk 内置变量:
NR : 行:
实例:
# awk -F ‘:’ ’NR<10 {print $1}’ 1.txt : 显示前九行。
# awk -F ‘:’ ’NR=10 {print $1,$7}’ 1.txt
# awk -F ‘:’ ‘{if (NR==10) print $,$7}’ 1.txt
# awk -F ‘:’ ‘OFS=“:” {if (NR==10) print $1,$7}’ 1.txt
NF : 段
实例:
# awk -F ‘:’ ‘{print NF}’ 1.txt :打印每行有多少段。
# awk -F ‘:’ ‘{if (NF==7) print $1}’ 1.txt
OFS : 分割符
awk 可以进行数学运算。
# awk -F ‘:’ ‘$7=$3+$4’ 1.txt
# awk -F ‘:’ ‘OFS=“:” {$7=$3+$4; print $0}’ 1.txt
# awk -F ‘:’ ‘{(sum=sum+$3)};END {print sum}’ 1.txt
1、sed 工具比grep 复杂。与grep 不一样的就是不能颜色显示。
2、实例:
1、sed -n ’10’p 1.txt : 打印10行,注意-n 参数。
2、 sed -n ’30,$’p 1.txt : 从30行到末尾行
3、 sed -n ‘/root/‘p 1.txt : 包含root 的行
4、sed -n ‘/r.o/‘p 1.txt : 一个
5、sed -n ‘/r*o/‘p 1.txt :一个或多个
6、sed -n ‘/r\?o/‘p 1.txt : 注意脱意字符
7、sed ‘/^$/‘d 1.txt : 删除空行
8、sed ‘1,19’d 1.txt :删除1-19行
3、 参数:
-r :不需要再加脱意转换。
-i : 删除文本内容参数,一般不建议使用。
查找替换,与vim 的类似。
4、替换功能:
sed ‘1,10s/nologin/login/g’ 1.txt
1-10行 ,g 全局 ,将nologin 替换为login 。
sed ‘1,10s/\/sbin\/nologin/login/g’ 1.txt
sed ‘1,10s#/sbin/nologin#login#g’ 1.txt
上面两个同理一样。
sed ’s#/sbin/nologin#login#g’ 1.txt 全局替换。
sed ’s#^.*$#login#g’ 1.txt : 将一整行修改为login
sed ’s#^.*$#&login#g’ 1.txt :每行的末尾加上login
sed ’s#[0-9]# #g’ 1.txt : 将每行的数字删除。
sed ’s#[^0-9a-zA-Z]##g’ 1.txt : 将特殊符号删除。
sed ’s#(^[a-z]+)(:.*:)(.*$)#\3\2\1#g’ 1.txt 将:最前和最后的互换位置。
sed -n ‘/root/p; /aming/p’ 1.txt : 用; 可以将多个条件打印。
sed -n -e ‘/root/p’ -e ‘/aming/p’ 1.txt 同理上面。
2.6 /2.7/2.8 awk
1、awk 优势:
能实现更多的功能,比如分段。
2、参数 :
-F : 后跟分割符号,’:'
实例:
# awk -F ‘:’ ‘{print $3}’ 1.txt : 打印第三段
# awk -F ‘:’ ‘{print $3,$4}’ 1.txt : 打印第三段,第四段。
# awk -F ‘:’ ‘OFS=“:"{print $3}’ 1.txt :
# awk ‘/user/‘ 1.txt
3、awk 不支持 {} 。
4、条件操作符:
实例:
# awk -F ‘:’ ‘$1==“root"’ 1.txt
# awk -F ‘:’ ‘$1==“root” || $7~/nolog/‘ 1.txt
5、awk 内置变量:
NR : 行:
实例:
# awk -F ‘:’ ’NR<10 {print $1}’ 1.txt : 显示前九行。
# awk -F ‘:’ ’NR=10 {print $1,$7}’ 1.txt
# awk -F ‘:’ ‘{if (NR==10) print $,$7}’ 1.txt
# awk -F ‘:’ ‘OFS=“:” {if (NR==10) print $1,$7}’ 1.txt
NF : 段
实例:
# awk -F ‘:’ ‘{print NF}’ 1.txt :打印每行有多少段。
# awk -F ‘:’ ‘{if (NF==7) print $1}’ 1.txt
OFS : 分割符
awk 可以进行数学运算。
# awk -F ‘:’ ‘$7=$3+$4’ 1.txt
# awk -F ‘:’ ‘OFS=“:” {$7=$3+$4; print $0}’ 1.txt
# awk -F ‘:’ ‘{(sum=sum+$3)};END {print sum}’ 1.txt
编辑回复