前言:
一直想好好学学sed和awk,感觉真的太强大了,虽然在工作中用的不是很多,但由于崇拜,决定成为sed与awk脚本的菜鸟程序员.
既然要学习,就要记好笔记,下面把觉得很重要的精髓记下来.
看了一些资料,值得推荐的一本书<<sed与awk>>,我看的是 oreilly sed与awk(第二版),因为上网电子书只找到这版了,哈哈!
第一章是讲sed与awk怎么怎么好,让你爱上她.我已经爱上她了,所以没什么要说的.
第二章讲的是基本操作.由于以前写过简单的脚本,所以只是简单的记一下.
sed[-e] 'instruction' file :这种方式是在命令行执行sed脚本的方式,单引号里面是要执行的动作
sed -f script file :这种方式是将脚本写入script文件中,用-f参数指定执行它,然后对file的操作
在命令行给出多指令方法:
1.用-e参数
2.用分号分隔
-n:不自动输出
p:打印影响的行
//用AA替换aa并只显示影响的行
$sed -n 's/aa/AA/p' list #只用AA替换第一个aa,并只显示影响的行
$sed -n 's/aa/AA/pg' list #用AA替换list中的所有aa,并只显示影响的行
$sed -n 's/aa/AA/p' -e 's/aa/AA/p' list #用AA替换前两个aa,并只显示影响的行
$awk '/AA/' list #打印出匹配AA的所有行
$awk '/AA/ {print $1}' list #打印出匹配AA的所有行中的第一个字段
$awk -F, '/AA/ {print $1,$2}' list #打印出匹配AA的所有行中以逗号为分隔符的第一个字段和第二个字段
$awk '/AA/ {print $1;print $2}' list #打印出匹配AA的所有行中的第一个字段和第二个字段,字段间换行