簡體   English   中英

awk腳本中的多字段分隔符

[英]Multiple Field separator in awk script

我有以下代碼,可以輸出文件中的行數和單詞數。 我怎么能再用一個FS(文件分隔符)來計算總字符數。 (輸出應與wc file command相同)

BEGIN {
  FS="\n| ";

}

{

  for(i=1;i<=NF;i++)
   w++
   l++
}

END { 
  print "Total no of Lines:"l;
  print "Total no of words:"w;

}

請注意,使用該字段分隔符時,腳本將計算太多“單詞”,因為字段在此處被視為單詞,並且每個空格都成為字段分隔符。

此外, awk只能為正確的文本文件提供正確的結果,其中觀察到最大行長度等限制,最后一行以換行符結束。

腳本可以進一步簡化

{ 
  w+=NF
  c+=length+1
}

END { 
  print "Total no of lines:" NR
  print "Total no of words:" w
  print "Total no of chars:" c 
}

你可以使用內置變量“$ 0”和函數“length”

BEGIN {
  FS="\n| ";

}

{

  for(i=1;i<=NF;i++)
   w++
   l++
   c += length($0)+1
}

END { 
  print "Total no of Lines:"l;
  print "Total no of words:"w;
  print "Total no of chars:"c;

}

編輯:添加+1到長度以考慮換行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM