[英]Print columns in for loop in awk wrt variable value
我正在嘗試通過以下示例程序使用awk
計算單詞“ is”的出現次數:
awk '
BEGIN { count = 0; word="is"; out=$ }
/word/ {
for (i=1; i<=NR; i++) {
if ($(i) == word) count++;
}
}
END {print "Found word " word count " no of times"}
' data.txt
但是這里的問題是$(i)
沒有被解釋為列號。 您能否建議用$(i)
代替該行中i
值來i
來引用列號(動態)?
i
是字段或列號(1、2、3,...), $i
是該字段中的值:
$ echo This is it|awk '{for(i=1; i<=NF; i++) print i" "$i}'
1 This
2 is
3 it
所以你的程序:
$ cat test.awk
BEGIN {
count = 0
word="is"
}
{
for (i=1; i<=NF; i++)
if ($(i) == word)
count++
}
END {
print "Found word " word" "count " no of times"
}
$ echo This is it|awk -f test.awk
Found word is 1 no of times
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.