コマンドを使用してプログラムを作成しましたが、シェルスクリプトを使用してファイルで使用せずに行、単語、および文字数を計算するwc
方法を知りたいです。wc
答え1
バイト数の計算(例wc -c
:)
< file LC_ALL=C tr -c '\n' '[\n*]' | grep -c '^'
改行数を計算するには(例wc -l
:):
< file LC_ALL=C tr -cd '\n' | grep -c '^'
単語(たとえばwc -w
)の場合、FreeBSD(GNUではない)などのPOSIX互換性を想定し、tr
ファイルに無効なバイトシーケンスが含まれていないとします。
< file tr -cs '[:space:]' '[x*]' | tr -cs x '[\n*]' | grep -c x
文字(たとえばwc -m
)の場合、同じ制限が適用されます。
< file tr -c '\n' '[\n*]' | grep -c '^'
出力情報:
printf '\0foo\u2006and \r\fbar\nbaz'
wc
en_GB.UTF-8ロケールのFreeBSDシステムと同様に、それぞれ20、1、4、および18を提供します。