sed和gawk

Posted jinyuanliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed和gawk相关的知识,希望对你有一定的参考价值。

sed说明

sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。

sed使用方法

sed的使用方法,调用sed 命令的语法有两种:

一.在命令行指定sed指令对文本进行处理:sed +选项  ‘指令’ 文件

二.先将sed指令保存到文件中,将该文件作为参数进行调用:sed   +选项  -f  包含sed指令的文件  文件

sed的常用选项

-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项

-f:后跟保存了sed指令的文件

-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改

-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行

sed中的编辑命令

a:追加  向匹配行后面插入内容

c:更改  更改匹配行的内容

i:插入  向匹配行前插入内容

d:删除  删除匹配的内容

s:替换  用斜线间指定的第二个文本字符串来替代第一个文本字符串。

[[email protected] ljy]# more ceshi.sh 
this is one!
[[email protected] ljy]# sed -i ‘s/one/two/‘ ceshi.sh   
[[email protected] ljy]# more ceshi.sh                
this is two!

默认情况下,只会替换一行中的第一处。要想替换一行中不同地方出现的文件必须使用替换标记。

s/pattern/replacement/flags

有四种可用的替换标志:

  • 数字:表明新文件将替换第几处模式匹配的地方,比如2,替换每行中第二次出现的文本
  • g :表明新文件将会替换所有匹配的文本
  • p : 表明原先行的内容要打印出来 ,通常与sed的-n一起使用
  • w file :将替换的结果写入到文件中
[[email protected] ljy]# more ceshi.sh                  
this is one,one,one
[[email protected] ljy]# sed -i ‘s/one/two/2 ‘ ceshi.sh                                         
[[email protected] ljy]# more ceshi.sh                  
this is one,two,one
[[email protected] ljy]# sed -i ‘s/one/two/g ‘ ceshi.sh  
[[email protected] ljy]# more ceshi.sh                  
this is two,two,two


p:打印  打印出匹配的内容,通常与-n选项和用

=:用来打印被匹配的行的行号

n:读取下一行,遇到n时会自动跳入下一行

r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件

 

以上是关于sed和gawk的主要内容,如果未能解决你的问题,请参考以下文章

sed和gawk基础

shell高级-----初识sed和gawk

如何使用 sed、awk 或 gawk 仅打印匹配的内容?

Shell学习:sed & gawk

Shell学习:sed & gawk

Shell学习:sed & gawk