あるコマンドの出力を別のコマンドの入力として使用する方法

あるコマンドの出力を別のコマンドの入力として使用する方法

毎週水曜日に作成するすべてのバックアップのコピーを作成します。各ファイルのタイムスタンプはソートされていませんが、各ファイルの日付は水曜日です。

これで、タイムスタンプに基づいて各ファイルを並べ替える必要があります。たとえば、日付が5月1日の場合は、まず5月1日のバックアップファイルを表示し、次に5月8日のファイルを表示する必要があります。

このコマンドを使用しましたが、当然エラーが発生しました。

sort $(cat /home/emerg/Wedbackup.txt)

エラーは次のとおりです。

sort: invalid option -- w

これは、あるコマンドの出力を2番目のコマンドの入力として使用する方法がわからないためです。どうすればよいかアドバイスが必要です。

答え1

この場合、catを使用する必要はありません。

sort /home/emerg/Wedbackup.txt

あなたの例では、問題はファイルが次のように渡されることです。コマンドライン一種の、それはあなたが望むものではありません。たとえば、これがあなたのファイルの場合:

foo bar
baz qux
wibble wobble

パラメータは次のとおりです。

sort foo bar baz qux wibble wobble

あなたが望むものではありませんか?実際に望むのは、ファイルをsortstdinに渡すことです。これは次のように行うことができます。

sort < /home/emerg/Wedbackup.txt

ファイル名を引数として使用することは特定の一般的なsort規則ではないため、これはより一般的です。

ソートの場合、標準入力ではなくファイル名を引数として渡すことをお勧めします。これにより、ファイルを検索でき、ソートがより効率的になります。

答え2

次のようにパイプを使用する必要があります。

cat /home/emerg/Wedbackup.txt | sort

関連情報