ファイル内のヌルで区切られた項目数の計算

ファイル内のヌルで区切られた項目数の計算

find -print0処理するファイルのリストを一時ファイルとして保存するシェルスクリプトがあります。ロギングの一部として見つかったファイルの数を出力したいので、その数を取得する方法が必要です。-print0セキュリティ上の理由からこのオプションを使用しない場合は、このオプションを使用してカウントをwc -l取得できます。

ベストアンサー1

いくつかのオプション:

tr -cd '\0' | wc -c

tr '\n\0' '\0\n' | wc -l       # Generic approach for processing NUL-terminated
                               # records with line-based utilities (that support
                               # NUL characters in their lines like GNU ones).

grep -cz '^'                   # GNU grep

sed -nz '$='                   # recent GNU sed, no output for empty input

awk -v RS='\0' 'END{print NR}' # not all awk implementations

最後のNUL文字(またはNUL文字のない空でない入力)以降のデータを含む入力の場合、これらのtrメソッドは常にNUL文字数を数えますが、awk//sedメソッドはgrepこれらの追加バイトの追加レコードを計算します。

おすすめ記事