Linux notes:正则表达式2--Sed

来源:互联网 发布:女命七杀格 知乎 编辑:程序博客网 时间:2024/06/05 10:23

Sed

  • 管线命令,可以分析standard input
  • 数据的取代,删除,新增,撷取

删除

nl /etc/passwd|sed '2,5d'#d,表示delete删除第2到5行nl /etc/passwd|sed '3,$d'#删除第三行到最后一行

新增

nl /etc/passwd|sed '2a drink tea'#a,在第2行后,也就是第3行加上‘drink tea’,新增的一行nl /etc/passwd|sed '2i drink tea'#i, 在第2行前nl /etc/passwd|sed '2a' Drink tea or\any coffee?'

用来把运行结果打印成添加相关描述的样子

以行为单位的取代,显示

nl /etc/passwd|sed '2,5c No 2-5 number'#把2-5行取代为‘No 2-5 number,仅显示一行’nl /etc/passwd|sed -n '5,7p'#仅列出5到7行

部分数据的搜寻和取代

/sbin/ifconfig eth0|grep 'inet addr'|\>sed 's/^.*addr://g'|sed 's/Bcast.*$//g'
  1. #/sbin/ifconfig eth0:取得
  2. grep取出关键行数据: inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
  3. sed’s/要被取代的字段/新的字段/g’: 删除了inet addr:和Bcast后的部分
cat /etc/man.config | grep 'MAN'| sed 's/#.*$//g' | \> sed '/^$/d'

取出关键词为MAN并没有注释符号的行,
删除空行
注:这些操作都是提取数据,并没有给源文件造成变化

sed -i '$a # This is a test' regular_express.txt

在regular_express.txt最后加上“”This is a test“”

原创粉丝点击