sed和awk简明教程-面试

sed option script file
option : -e script -f file -n 分别表示从多行script多行输入、文件中获得输入和不要为每条命令生成输出,
等待print来输出。
-n表示不输出原来的问本行
script:
替代:
s/pattern/replacement/flags

flags:
/number如: sed‘s/test/tester/5’file1 表示将file1中的第5处的匹配位置.
/p 表示原来的行也输出
/w file 表示结果输出到file中
/g 表示替代所有已有文本出现的地方.
行寻址:
address command或者
address {
command1
command2
}
(1)数字寻址:address 可以使用单个数字或者num1,num2表示num1和num2行之间的部分.如
sed ‘2,$s/dog/cat’ animal.txt
(2)文本过滤器寻址
/pattern/command
表示只在匹配pattern模式的行执行command命令。

例子:
(1)将/etc/passwd文件中的/bin/bash替换成/bin/csh
sed -p ‘s!/bin/bash!/bin/csh!’ /etc/passwd
删除:d命令
sed ‘d’ data1 #删除data1所有行
sed ‘/1/,/3/d’ data1 #从匹配模式1的地方打开行删除功能,匹配模式2的地方关闭删除行功能.
插入和追加:
i和a命令:格式为:sed ‘[address]command\newline’
注意:插入总在数据流的前面,添加总在数据流的后面。
例子:
cat test |sed ‘$a\fsdf’
修改行:c命令。
sed ‘linenumc\sfafafa’ test
置换命令:y命令-唯一可以处理单个字符的sed编辑命令。
[address]y/inchars/outchars/
sed 'y/123/789/’data8 将data8中所有的1置换成7 2置换成8 3置换成9
y命令为全局命令,无法控制只替代文档中的指定字符。

一些技巧:
打印命令:p打印文本行,=用于打印行号 l用来列出行
可以使用{}执行多条命令
如:
`sed -n '/num1/{

p
}`
注意:
sed 使用-i表示直接在文件中修改
sed 只有修改插入(i),添加(a),修改©命令式使用’'作为分割

1 sed ‘s/^/#/’ data
在data每句行首加一个’#’
同理可以在行尾加#
2 sed ‘s!abc>!abd!’ test 表示只替代以abc结尾的abc字符成abd

^ 表示一行的开头。如:/^#/ 以#开头的匹配。
$ 表示一行的结尾。如:/}$/ 以}结尾的匹配。
< 表示词首。 如 <abc 表示以 abc 为首的詞。
> 表示词尾。 如 abc> 表示以 abc 結尾的詞。
. 表示任何单个字符。

  • 表示某个字符出现了0次或多次。
    [ ] 字符集合。 如:[abc]表示匹配a或b或c,还有[a-zA-Z]表示匹配所有的26个字符。如果其中有表示反,如[a]表示非a的字符

sed ‘s!abc>!abd!’ test 表示只替代以abc结尾的abc字符成abd
如果我们需要一次替换多个模式,可参看下面的示例:(第一个模式把第一行到第三行的my替换成your,第二个则把第3行以后的This替换成了That)

sed’1,3s/my/your/g; 3,$s/This/That/g’ my.txt

我们可以使用&来当做被匹配的变量,然后可以在基本左右加点东西。如下所示:
$ sed’s/my/[&]/g’ my.txt

命令打包:
sed '3,6 {/This/{/fish/d}}'pets.txt
gawk

什么是架构设计?架构设计看这篇文章就够了

Redis为什么这么快?

重磅:解读2020年最新JVM生态报告

BIO,NIO,AIO 总结

JDK8的新特性,你知道多少?

回复“资料”,免费获取 一份独家呕心整理的技术资料! image

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非典型理科男

1毛钱打赏,让作者更有动力噢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值