次のディレクトリパスを含む大きなファイルがあります。
$PRJ/fp/t/mxl/lf/
$PRJ/fp/t/mxl/lf/
ファイルを1行ずつ読み、出力ファイルの1行に各ディレクトリファイル内のすべてのファイルを一覧表示したいと思います。
出力ファイルは次のようにする必要があります。
$PRJ/fp/t/mxl/lf/ring.lf
$PRJ/fp/t/mxl/lf/rin.lef
ディレクトリパスを指定するfindコマンドを使用できますが、ディレクトリパスを含むファイルにはどのように使用しますか?
find input_file -type f
動作しません。
誰もが入力として提供されたファイルのディレクトリパスを使用してディレクトリ内のファイルを一覧表示する方法を提案できますか?
答え1
GNUは、find
--separatedパスセットを含むファイルを指定するこのオプションを使用して、ファイルから開始点を繰り返し読み取ることができます-files0-from
。NUL
扱うただサブディレクトリではなくディレクトリを指定する場合は、を使用することもできます-maxdepth 0
。このオプションはGNU 4.9.0(2022-02-22)以降で利用可能です-files0-from
。find
あなたの場合は、tr
改行で区切られたファイルのリストをNUL
--delimitedファイルのリストに変換し、そのfind
リストを検索する入力ディレクトリのセットに読み込む必要があります。例えば、
tr '\n' '\0' <input_file | find -maxdepth 0 -files0-from - -type d -print