三剑客(sed awk head)

Posted

tags:

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

① sed(替换)
命令格式

sed [options] ‘command‘ file(s)
sed [options] -f scriptfile file(s)
n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
g 表示行内全面替换。
p 表示打印行。
w 表示把行写入一个文件
替换文本中的字符串:

sed ‘s/book/books/‘ file
-n选项和p命令一起使用表示只打印那些发生替换的行:

sed -n ‘s/test/TEST/p‘ file

直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:

sed -i ‘s/book/books/g‘ file
已匹配字符串标记&
正则表达式 w+ 匹配每一个单词,使用 [&] 替换它,& 对应于之前所匹配到的单词:

echo this is a test line | sed ‘s/w+/[&]/g‘
[this] [is] [a] [test] [line]

②awk (取行)
awk脚本基本结构
awk ‘BEGIN{ print "start" } pattern{ commands } END{ print "end" }‘ file
一个awk脚本通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中,例如:

awk ‘BEGIN{ i=0 } { i++ } END{ print i }‘ filename
awk "BEGIN{ i=0 } { i++ } END{ print i }" filename
awk的工作原理
awk ‘BEGIN{ commands } pattern{ commands } END{ commands }‘
第一步:执行BEGIN{ commands }语句块中的语句;
第二步:从文件或标准输入(stdin)读取一行,然后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件全部被读取完毕。
第三步:当读至输入流末尾时,执行END{ commands }语句块。
算术运算符
运算符 描述

    • 加,减
      • / & 乘,除与求余
          • ! 一元加,减和逻辑非
            ^ *** 求幂
            ++ -- 增加或减少,作为前缀或后缀
            awk ‘BEGIN{a="b";print a++,++a;}‘
            0 2
            注意:所有用作算术运算符进行操作,操作数自动转为数值,所有非数值都变为0
            ③ head
            -n<数字>:指定显示头部内容的行数;
            -c<字符数>:指定显示头部内容的字符数;
            -v:总是显示文件名的头信息;
            -q:不显示文件名的头信息。

以上是关于三剑客(sed awk head)的主要内容,如果未能解决你的问题,请参考以下文章

linux三剑客的基本使用——grep、sed、awk

Shell ❀ 三剑客 - Grep + Sed + Awk

Shell ❀ 三剑客 - Grep + Sed + Awk

Shell ❀ 三剑客 - Grep + Sed + Awk

三剑客-sed awk

Linux三剑客grep/sed/awk