問題の原因は、複数行の改行を含むファイル名だったことがわかりました。 (どうやってこのようなことが起こったのかわかりません。)
find ~/x/y/ | shuf > ~/Desktop/z.txt
このコマンドは、「z.txt」ファイルの一部の空行を除いて、ほとんどが期待どおりに機能します。次の手順では、トップレベルのファイルを選択して開く必要があります。空の行は当然役に立たないため、これは不便です。なぜこれが起こるのか、そしてこの問題に対する「標準」ソリューション(いくつかのオプション?)があるのか、強力でシンプルなソリューション(空白行を削除するための追加コマンド?)があるのか疑問に思います。
ベストアンサー1
出力ファイルに空白行が表示される理由はわかりませんが、ファイルに書き込む前に空白行をフィルタリングしてみることができます。
find ~/x/y/ | shuf | grep -v '^$' > ~/Desktop/z.txt
空白行のソースを追跡するには、find
個別に実行してみてください。
find ~/x/y/ > ~/Desktop/z.txt
空白行がありますかz.txt
?もしそうなら、おそらくfind
。
改行ターミネーターの代わりにゼロターミネーターを使用できます。リストから最初の項目を選択するときは、最初の文字から最初のNULL文字までのテキストを使用してください。
find ~/x/y/ -print0 | shuf -z > ~/Desktop/z.txt