echo '# x y z w '| awk '/\w/{++cnt} END {print "Count = ", cnt}'
1
如何輸出4作爲結果?
x和y以及z和w,其中四個匹配模式\ w。
對於這裏# x y z w
字符串,所有匹配的次數爲4如何用awk統計所有匹配的時間?
echo '# x y z w '| awk '/\w/{++cnt} END {print "Count = ", cnt}'
1
如何輸出4作爲結果?
x和y以及z和w,其中四個匹配模式\ w。
對於這裏# x y z w
字符串,所有匹配的次數爲4如何用awk統計所有匹配的時間?
什麼你試圖做任何遍歷所有領域和計數,或更改RS使awk
會爲你
echo '# x y z w ' | awk -v RS=' +' '/\w/{++cnt} END {print "Count = ", cnt}'
做
然而,更好的方法,這將是行多行輸入工作線可
echo '# x y z w ' | awk '{print "Count:", gsub(/\w/,"&")}'
既可能是特定GNU
和你awk
可能不支持,所以
... | awk '{for(i=1;i<=NF;i++) if($i~/\w/) cnt++} END{print ...'
所有這些解決方案都是GNU特有的'\ w'。將'\ w'更改爲POSIX括號表達式,然後由於多字符RS,只有第一個將仍然是gawk特有的。 –
echo'#x y z w'| awk'{print'Count:「,gsub(/ \ w + /,」&「)}' –
是的,目前它計算的是字符,而不是單詞。 – karakfa
'awk'默認作爲記錄工作,你想遍歷所有字段或設置RS爲空白。 – karakfa