sed 和awq常用指令
操作
示例
含义解析
输出文本
sed ‘1p’ a.txt 或
sed -n ‘p’ a.txt
输出所有行,等同于cat a.txt
sed -n ‘1p’ a.txt
输出第1行
sed -n ‘4p’ a.txt
输出第4行
sed -n ‘$p’ a.txt
sed -n ‘5,$p’ a.txt
从第5行输出到最后一行
sed -n ‘4,7p’ a.txt
输出第4~7行
sed -n ‘4,+10p’ a.txt
输出第4行及其后的10行内容,共11行
sed -n ‘2p;5p;7p’ a.txt
sed -n ‘{2p;5p;7p}’ a.txt
输出第2,5,7行 用分号来隔离多个操作(如果有定址条件,则应该使用{ }括起来)
sed -n ‘/a/p’ a.txt
sed -n ‘/A/p’ a.txt
sed -n ‘/^id/p’ a.txt
列出以id开头的行:
sed -n ‘/a/p;/r/p’ a.txt
sed -n ‘/local$/p’ a.txt
输出以local结尾的行
sed -n ‘p;n’ a.txt
输出奇数行,n表示读入下一行文本(隔行)next
sed -n ‘n;p’ a.txt
输出偶数行,n表示读入下一行文本(隔行)
sed -n ‘$=’ a.txt
输出文件的行数, wc -l返回行数及文件名
删除文本
sed ‘d’ a.txt
删除所有
sed ‘$d’ a.txt
删除文件的最后一行
sed ‘/^$/d’ a.txt
删除所有空行
sed ‘1d’ a.txt
删除第1行
sed ‘2,5d’ a.txt
删除第2~5行
sed ‘5d;7d;9d’ a.txt
删除第5、7、9行
sed ‘/init/d;/bin/d’ a.txt
删除所有包含“init”及“bin”的行
sed ‘/[0-9]/d’ a.txt
sed ‘/^#/d’ a.txt
sed ‘/^s/d’ a.txt
sed -i ‘/^s/d’ a.txt
直接删除
sed ‘/^install/d’ a.txt
删除以install开头的行
sed ‘/xml/d’ a.txt
删除所有包含xml的行,只作输出,不更改原文件,若需要更改,应添加选项-i
sed ‘/xml/!d’ a.txt等效于
sed -n ‘/xml/p’ a.txt
删除不包含xml的行,!符号表示取反
替换文本
sed ‘s/xml/XML/’ a.txt
将每行中第1个xml替换为XML
sed ‘s/xml/XML/3’ a.txt
将每行中第3个xml替换为XML,只作输出,不更改原文件(若需要更改,应添加选项-i)
sed ‘2s/xml/XML/3’ a.txt
将第2行中第3个xml替换为XML,只作输出,不更改原文件(若需要更改,应添加选项-i)
sed ‘s/xml/XML/g’ a.txt
将所有的xml都替换为XML
sed ‘s/xml//g’ a.txt
将所有的xml都删除(替换为空串)
sed ‘s/doc/&s/g’ a.txt
将所有的doc都替换为docs,&代表查找串
sed ‘4,7s/^/#/’ a.txt
将第4~7行注释掉(行首加#号)
sed ‘3,5s/^#//’ a.txt
解除文件第3~5行的注释(去掉开头的 # )
sed ‘s/^#an/an/’ a.txt
解除以#an开头的行的注释(去除行首的#号)
sed ‘s/xml|XML|e//g’ a.txt
删除所有的“xml”、所有的“XML”、所有的字母e,或者的关系用转义方式 | 来表示