文字の総数ではなく、wcを使用して各行の文字をカウントすることはできますか?
例:
echo -e foo\nbar\nbazz | grep -i ba
戻り値:
bar
bazz
では、なぜ echo -e foo \ nbar \ nbazz | grep ba | wc -m
それらの単語の長さのリストを返しますか? (3と4)
提案?
追伸:ラインフィードが wc -m
でカウントされるのはなぜですか ? wc -l </ code> 改行を数えるので、なぜ
wc -m
が必要なのですか? それらも数えますか?
承認された回答:
wc
ファイル全体をカウントします; awk
を使用できます 行ごとに処理するには(行区切り文字はカウントされません):
echo -e "foonbarnbazzn" | grep ba | awk '{print length}'
またはawk
として ほとんどがgrep
のスーパーセットです :
echo -e "foonbarnbazzn" | awk '/ba/ {print length}'
(一部の awk
に注意してください 実装はバイト数を報告します( wc -c
など) )文字数ではなく( wc -m
など) )などは、文字に加えて有効な文字の一部を形成しないバイトをカウントします( wc -m
ほとんどの実装ではそれらを無視します))