实例讲解4--awk命令h

来源:互联网 发布:淘宝店铺可以转让吗 编辑:程序博客网 时间:2024/05/29 07:07

15.awk的FS、OFS和ORS使用:
以’|’为分隔符输出各个域
  awk ‘BEGIN{OFS=”|”}{print $1,$2,$3,$4}’ filename
  awk 'BEGIN {OFS=";"; ORS="\n\n"} {print $1, $2}' filename
  awk 'BEGIN {FS=","}; {print $2}'

16.awk的sprintf函数的使用
sprintf格式化字符串
  print sprintf("%03d", 2);

17.awk的重定向,输出到文件:
可以使用>或者>>
  print “This is a test" > "fff.txt"

18.awk删除文件的第一行
  awk ‘{ if (NR % 2 == 1) printf “%s”, $0 ’

19.awk删除输入行中特定行的换行字符
  例如:删除奇数行的换行字符
  awk '
{
if (NR % 2 == 1)
printf "%s",$0 ;
else
print $0
}'

20.awk获取输入行中,域的最大个数
awk '{if (NF > max) max = NF} END {print max}'

21.awk输出一行超过80 个字符的每一行
awk 'length($0) > 80'

22.awk输出至少一个域的所有行。可用来将一个文档里的所有空白行删除
awk '{if (NF > 0) print}'

23.awk输出范围在0 到100 之间的7 个随机数
awk 'BEGIN {for (i = 1; i <= 7; i++)
print int(101 * rand())}'

24.awk将所有用户的login名称依照字母的顺序输出
awk 'BEGIN {FS = ":"} {print $1 | "sort"}' /etc/passwd

25.awk将一个文档的总行数输出
awk '{nlines++} END {print nlines}'
或awk 'END {print NR}'

26.awk输出文档的内容时会在每行的最前面输出行号它的功能与'cat -n' 类似
awk '{print NR,$0}'

27.awk自定义函数的例子一: 第一个域与第二个域的平方和
awk ‘{print "sum =",SquareSum($1,$2)}
function SquareSum(x,y) {
sum=x*x+y*y
return sum
}’

原创粉丝点击