wc - 終了文字の設定

wc - 終了文字の設定

私はこうしました。wc --files0-from=FILEファイルリストの単語数を求めてみましょう。このリストの各項目はASCII NUL文字で終わる必要があります。

質問:NULを手動で設定するなど、終了文字を設定する方法や他の方法はありますか?私はこれをここで見つけました。 [出力引用符info wc]:

find', using its... GNU -print0 '述語を使用してASCII NUL終了ファイル名のリストを生成します。

誰かが言ったことを発見しました。各ファイル名はASCII NUL文字で終わります。。たとえば、これは出力に適していますかls?わかりました、解析しないでくださいlswcしかし、次に読みやすいように出力をファイルに書き込むことをお勧めします。

答え1

ls各ファイル名は、標準出力が端末以外の場合は、\nNUL()ではなく改行文字()で終わります。\0

NUL を区切り文字として使用して、現在のディレクトリのファイルを一覧表示する方法は次のとおりです。

find . -maxdepth 1 -print0

これはピリオドで始まるファイルとも一致します。これを無視するには、次のようにします。

find . -maxdepth 1 \! -name '.*' -print0

他の方法は次のとおりです。

ls | tr '\n' '\0'

または

printf '%s\0' *

find@ChrisDownが彼のコメントで指摘したように、ファイル名が現在のディレクトリに含まれている場合、printf オプションのみが正しく動作します。\nそれ以外の場合(実際にはファイル名に改行文字を使用している人がいるかどうか疑問に思います)、これら3つは同じです。

関連情報