shell的Sed和awk用法

Sed
sed基本语法:sed '样式' 文件
样式中,使用// 代表寻找,比如1,5代表第一到第五行,/aaa/,/bbb/ 表示作用范围从aaa的行到bbb的行。
例子:
sed '1,4d' file 指的是把第一到第四行删除。
sed '/aaa/d' file 指的是把含有aaa的那行删除。
sed '/[0-9]\{3\}/d' file 指的是把含有3个数字的行删除。
sed '/^$/d' file 指的是把空白行删除。
sed '/aaa/!d' file 指的是把不含有aaa行的删除。
sed '/aaa/p' file 指的是把含有aaa的行显示出来。
sed -n '/aaa/p' file 指的是把含有aaa的行显示出来,同时显示行号。

使用sed取代字符
例子:
sed 's/aaa/bbb/p' file 将bbb取代aaa,只取代一次。
sed 's/aaa/bbb/pg' file 将bbb取代aaa,全部取代。
sed 's/aaa//p' file 将aaa删除,只删除一次。
sed 's/^...//' file 将每行的前3个字符删除。
sed 's/...$//' file 将每行的后3个字符删除。

sed -n 's/\(a\)/\1b/p' file 找到第一个a然后替换成ab。

awk
awk '/aa/' file 显示含有aa的行。
awk '{print $1, $2}' file 显示第一第二字段。
awk '/aa/{print $1, $2}' file 将含有aa的行的第一和第二个字段显示出来。
awk -F: '/^root/{print $1, $2}' /etc/passwd 指定:为分隔符,打印第一和第二字段。
awk -F: 'BEGIN{OFS="+++"}'/^root/{print $1, $2} /etc/passwd 以:为分隔符,打印第一和第二段,而且彼此用+++分开。

本文出自 “转身离开-王军” 博客,请务必保留此出处http://johnwang.blog.51cto.com/474770/327154

你可能感兴趣的:(shell,awk,sed)