awk が行った変更の数を出力する方法があるかどうか、または何らかの方法で変更内容を追跡する方法があるかどうか疑問に思っていました。たとえば、awk を使用して「the」という単語を「it」に置き換えた .csv ファイルがあった場合、awk を出力して、「the」内の「the」を何回見つけて置き換えたかを出力する方法があるでしょうか。 .csv ファイル? 私はグーグルとこのサイトの残りの部分を検索してきましたが、何かを見つけることができませんでした。間違った方法で作業しているだけなのか、それとも何かのようなものなのかわかりませんが、誰かがこれで私を助けてくれれば本当に感謝します、ありがとう!
2 に答える
2
awk スクリプトで「the」を「it」に置き換えるたびに、カウンターをインクリメントします。次に、カウンターを END ブロックに入れて awk スクリプトの最後に出力します。
the
簡単な例では、列 1 内の" " のみを置き換えています。
awk 'BEGIN{FS=OFS=","}
{if ($1 == "the") {$1 = "it"; counter++; print}}
END{print counter}' input.csv
しかし、あなたがしようとしているのは、元の .cvs ファイル内で単語/パターン「the」が何回発生したかを単純に数えることです。次のように簡単に実行できます。
grep -c "the" input.csv
または .csv の形式に応じて:
grep -c " the," input.csv
于 2012-11-29T07:38:58.337 に答える
2
私の知る限り、 awk はその置換カウントを自動的に与えることはできません。何らかの方法で手動で数値を合計する必要があります。たとえば、「the」->「it」の場合:
gawk '{x+=gsub("the","it");print} END{print "total changes:"x}' file.csv
于 2012-11-29T09:37:52.167 に答える