私の理解では、comm -23 file1 file2
を使用したいと思います。 file1はfind
の結果であり、file2はcut -c43- list
です。これを1行で記述し、ファイルを使用しないことは可能ですか(リストに名前を付けたものを除く)?
プロセス置換はここであなたの友達です:
_$ comm -23 <(find /dir -name 'something') <(cut -c43- list)
_
形式<(command)
は一時ファイル記述子をcommand
に適用し、<( )
全体がcomm
(またはその他のコマンド)へのファイル入力として使用されます。 )。
プロセス置換の詳細はこちら を参照してください。 _man bash
_も確認してください:
プロセス置換
プロセス置換により、ファイル名を使用してプロセスの入力または出力を参照できます。 <(リスト)または>(リスト)の形式を取ります。プロセスリストは非同期で実行され、その入力または出力はファイル名として表示されます。このファイル名は、展開の結果として現在のコマンドに引数として渡されます。 >(list)形式が使用されている場合、ファイルへの書き込みはリストへの入力を提供します。 <(list)形式を使用する場合は、引数として渡されたファイルを読み取って、listの出力を取得する必要があります。プロセス置換は、名前付きパイプ(FIFO)または開いているファイルに名前を付ける/ dev/fdメソッドをサポートするシステムでサポートされています。