複数のファイルを1つにコピー/追加するために使用できるコマンドを探しています。しかしなしシェルリダイレクト(call_usermodehelper
で試してみたいのですが、 call_usermodehelper/call_usermodehelperpipe usage-スタックオーバーフロー )。私は別の方法で使用できることを知っています:
cat file1 file2 > file.merge
...しかし、それにはシェルのリダイレクトが必要です。
これまでの私の発見:
cat
は使用できません。これは、デフォルトのstdout出力を(たとえば、コマンドライン引数を介して)再定義できないためです。それ以外は、シェルリダイレクトです。dd
は単一の呼び出しでは使用できません。if=
入力ファイル引数を1つ(および1つのみ)しか受け入れることができないためです。cp
は使用できません。複数のファイルを個別に処理し、それらをすべて「マージ」して1つの場所にコピーすることができないためです。だから-(疑似コード)のようなことをすることができる標準的なツールはありますか:
copytool -i file1 -i file2 -o file.merge
...出力file.merge
がfile2
の内容に追加されたfile1
を表すように?
できるよ:
sed -n wfile.merge file1 file2
または:
awk '{print > "file.merge"}' file1 file2
または:
sh -c 'cat file1 file2 > file.merge'
(実装によっては、最初の2つはバイナリファイルでは正しく機能しない場合があります)。