① 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:不显示文件名的头信息。
- ! 一元加,减和逻辑非
-
- / & 乘,除与求余
- 加,减
原文地址:http://blog.51cto.com/13860358/2145308