欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

sed和gawk

发布时间:2023/12/20 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 sed和gawk 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

sed和gawk

sed

对输入执行字符串替换

s命令会用斜线间指定的第二个文本字符串来替换第一个文本字符串模式。在本例中是big test替换了test。



sed编辑器并不会修改文本文件的数据。 它只会将修改后的数据发送到STDOUT。 如果你查看原来的文本文件,它仍然保留着原始数据。 要在sed命令行上执行多个命令时,只要用-e选项就可以了。 $ sed -e ‘s/brown/green/; s/dog/cat/’ data1.txt 两个命令都作用到文件中的每行数据上。命令之间必须用分号隔开,并且在命令末尾和分号之间不能有空格。 也可以这样 有大量要处理的sed命令,那么将它们放进一个单独的文件中通常会更方便一些。可以在sed命令中用-f选项来指定文件。 $ cat script1.seds/brown/green/s/fox/elephant/s/dog/cat/$ sed -f script1.sed data1.txtThe quick green elephant jumps over the lazy cat.The quick green elephant jumps over the lazy cat.The quick green elephant jumps over the lazy cat.The quick green elephant jumps over the lazy cat.$$ sed ‘s/test/trial/2’ data4.txt将替换标记指定为2的结果就是: sed编辑器只替换每行中第二次出现的匹配模式。g替换标记使你能替换文本中匹配模式所匹配的每处地方。$ sed ‘s/test/trial/g’ data4.txtp替换标记会打印与替换命令中指定的模式匹配的行。这通常会和sed的-n选项一起使用。$ cat data5.txtThis is a test line.This is a different line.$$ sed -n ‘s/test/trial/p’ data5.txtThis is a trial line.$-n选项将禁止sed编辑器输出。但p替换标记会输出修改过的行。将二者配合使用的效果就是只输出被替换命令修改过的行。w替换标记会产生同样的输出,不过会将输出保存到指定文件中。$ sed ‘s/test/trial/w test.txt’ data5.txtThis is a trial line.This is a different line.$$ cat test.txtThis is a trial line.$sed编辑器允许选择其他字符来作为替换命令中的字符串分隔符:$ sed ‘s!/bin/bash!/bin/csh!/etc/passwd在这个例子中,感叹号被用作字符串分隔符,这样路径名就更容易阅读和理解了。$ sed ‘2s/dog/cat/’ data1.txtsed编辑器只修改地址指定的第二行的文本。$ sed ‘2,3s/dog/cat/’ data1.txt修改第二、三行的文本。如果想将命令作用到文本中从某行开始的所有行,可以用特殊地址——美元符。$ sed ‘2,$s/dog/cat/’ data1.txt

gawk

gawk程序脚本用一对花括号来定义。你必须将脚本命令放到两个花括号( {})中。 $ gawk ‘{print “Hello World!”}’ 如果你输入一行文本并按下回车键, gawk会对这行文本运行一遍程序脚本。跟sed编辑器一样,gawk程序会针对数据流中的每行文本执行程序脚本。由于程序脚本被设为显示一行固定的文本字符串,因此不管你在数据流中输入什么文本,都会得到同样的文本输出。 Ctrl+D组合键会在bash中产生一个EOF字符。这个组合键能够终止该gawk 程序并返回到命令行界面提示符下。  $0代表整个文本行;  $1代表文本行中的第1个数据字段;  $2代表文本行中的第2个数据字段;  $n代表文本行中的第n个数据字段。 $ cat data2.txtOne line of test text.Two lines of test text.Three lines of test text.$$ gawk ‘{print $1}’ data2.txtOneTwoThree$$ echo “My name is Rich” | gawk ‘{$4=“Christine”; print $0}’My name is Christine$第一条命令会给字段变量$4赋值。第二条命令会打印整个数据字段。注意, gawk程序在输出中已经将原文本中的第四个数据字段替换成了新值。

参考

1. https://blog.csdn.net/qq_44710568/article/details/104961942

总结

以上是生活随笔为你收集整理的sed和gawk的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。