① 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:不显示文件名的头信息。