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

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“”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值