| 
      linux下awk命令与sed命令参数用法详解,关于NR(在工作job)中的记录数,awk的内部变量,sed命令入门实例。 
	一、sed入门例子 
	例子: 2、-p,打印匹配行【注只用-p时文件所有内容都打印出来,但是匹配行打印两次】 
	3、-d 删除所对应的行 
	sed '1,5d' test 删除test文件的第1到5行 
sed '9,$d' test 删除test文件的第9行到最后一行。$代表文件的最后一行。 
	4、-s,用于字符串的替换 
	sed -n  's/bc/ggggggg/gp' test 
	5、-y,用于字符的变换 
	深入分析: 
	sed 'y/bc/BC/' test  被变换的字符序列和变换的字符序列长度必须相同,这是和s的区别。 
/pattern1/s/pattern2/pattern3/ :1~3都是正则表达式,匹配规则pattern1的每一行中的pattern2被替换为pattern3。s命令提供了&操作,使得在pattern3中可以重复使用匹配字符串pattern2。 sed -n '/hello/s/go/good/p' test 将含有hello行所在行的go替换为good sed -n '/hello/s/go/good/2p' test 将含有hello行所在行的第二个go替换为good sed -n '/hello/s/go/good/gp' test 将含有hello行所在行的所有的go替换为good sed -n '/hello/s/go/&od/gp' test &表示为已经替代的go,本句意思为将含有hello行所在行的所有的go替换为good sed '2,5c No 2-5 number' test test文件中的第2到5行用o 2-5 number替代 6、-i 编辑原文件(此选项慎用,如果使用则原文件就会被修改,无法恢复)。 
	插入的用法: 总结,在指定行之前插入使用的是“i”,而在指定行之后插入是使用“a”。 
	二、awk使用总结 
	awk '{if(NR%3)print $1 ; }' test  输出文件test中不是3的倍数的行的第一列 
awk '{print $1 "\t"$3}' test 输出文件test的每一行的第一列和第三列中间用8字节隔开 awk '{printf "%s\t%s\n",$1,$3}' 也可以用printf对文件进行输出,作用如上 
	2、FS  输入字段分隔符 
	awk -F":" '{print $3}' /etc/passwd 以冒号为分割符取出每一行的第三列 
awk '{FS=":"} $3 < 10 {print $1 "\t " $3}' 以冒号为分割符,当第三列的值小于10的情况下,打印出该行的第一和第三列 
	3、awk的内部变量 
	if [ -f $1 ];then 
awk ‘/^$/{file=FILENAME;x=x+1;next;} END {printf “%s %s %3.1f\n”,file,x,(100*(x/NR))}’$1 else echo “ERROR” fi 
	NF当前行($0)记录中的字段数 
	改变FS的默认值 awk ‘BEGIN {FS=“:”;} {print $1,$6;}’/etc/passwd  
或 awk –F: ‘{print $1,$6;}’ /etc/passwd (责任编辑:IT)  | 
    
