sed与awk学习笔记(一)

学习参考《sed与awk》第三版

一、sed基本例子

文本内容list:

John Daggett, 341 King Road, Plymouth MA
Alice Ford, 22 East Broadway, Richmond VA
Orville Thomas, 11345 Oak Bridge Road, Tulsa OK
Terry Kalkas, 402 Lans Road, Beaver Falls PA
Eric Adams, 20 Post Road, Sudbury MA
Hubert Sims, 328A Brook Road, Roanoke VA
Amy Wilde, 334 Bayshore Pkwy, Moutain View CA
Sal Carpenter, 73 6th Street,Boston MA


使用sed命令

sed 's/MA/Massachusetts/' list

把所有MA替换成Massachusetts

连接多个sed命令

sed -e 's/MA/Massachusetts/' -e 's/PA/PennsyIvania/' list

把所有MA替换成Massachusetts,PA替换成PennsyIvania

sed执行写好的脚本

在sedscr文件中写入

s/MA/Massachusetts/
s/PA/PennsyIvania/

然后执行脚本

sed -f sedscr list

保存sed执行的结果

上面几个例子,使用sed之后,会把替换的结果输出的屏幕,但是源文件没有变化。如果要把输出结果保存,必须对输出进行重定向

sed -f sedscr list > newlist

仅输出被替换行

每次执行sed,都会把所有行输出。有时候希望仅输出被改变的行,这里要使用-n选项和命令p来进行控制,把sedscr文件修改为

s/MA/Massachusetts/p
s/PA/PennsyIvania/p

然后执行命令

sed -n -f sedscr list

二、awk的基本例子

使用awk

awk '{print $1}' list

打印出list中第一列的字符串

awk '/MA/' list 

打印出匹配'MA'字符串的行

awk '/MA/ {print $1}' list

打印出匹配'MA'字符串的行的第一列

awk同样可以使用-f指定awk脚本文件

在脚本awkscr中编写

{print $1}

然后执行脚本

 awk -f awkscr list

可以打印list第一列的字符串

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值