sed命令 可以实现grep过滤功能,只是不能高亮显示。还可进行删除,替换等操作。(注:-i修改原文档)
1.过滤功能 -n...p
sed -n ‘10‘p 2.txt 打印文本第10行,必须加-n (p写在‘内外皆可)
sed -n ‘10,$‘p 2.txt 打印文本10到尾行
sed -n ‘/root/‘p 2.txt 打印包含root的行 关键字在//里面,可用正则表达式
sed -n ‘/r*o/‘p 2.txt 正则表达式范例,打印o或者ro rro rrr..o的行
? + () {} 必须用转义符\ 或者sed -r 与grep -E类似,都支持特殊符号 (即扩展正则表达式)
2.删除功能 -d
sed ‘[0-9]‘d 2.txt 删除包含数字的行,打印保留的行
sed ‘1,5‘d 2.txt 删除1-5行,打印保留行
sed ‘1d;6d‘d 2.txt 删除1行和6行,打印保留行
sed -i ‘5,$‘d 2.txt 删除5-尾行,打印保留行(注:- i真实删除,修改原文档)
3.替换功能 s/old/new/
sed ‘1,10s/admin/wyp/g‘ 2.txt 1-10行中,wyp替换admin关键字 g整行全局替换
sed ‘s#/sbin/no#wyp#g‘ 2.txt 全文本wyp替换/sbin/no 因为有特殊符号/,用#*或者转义符\来代替
sed ‘s#^.*#wyp#g‘ 2.txt 所有行替换为wyp
sed ‘s#^.*#&llzd#g‘ 2.txt 所有行末尾加上llzd字符 (&为末尾追加)
sed ‘s#[^0-9a-zA-Z]##g‘ 2.txt 所有非英文数字替换为空,(即删除)只留下英文数字
sed -r ‘s#(^[a-z]+)(:.*:)(.*$)#\3\2\1#g‘ 2.txt 以:为分隔符,第一段和最后一段调换位置
sed -n ‘/user;root/p‘ 2.txt 打印包含2个关键字的行,如一行包含2个关键字,则打印2次。
因为;代表执行了两次命令
sed -n ‘/user|root/p‘ 2.txt 打印包含2个关键字的行,因为一次执行,包含2个关键字,显示1次
sed -n -e‘/user/p‘ -e ‘/root/p‘ 2.txt ==sed -n ‘/user;root/p‘ 2.txt
这两条命令相等 -e参数功能为:多个表达式,写在一条命令中,分别执行。