テキストを含むファイル「atest.txt」があります..
このテキストをファイル「asdasd.txt asgfaya.txt asdjfusfdgh.txt asyeiuyhavujh.txt」に印刷したい
このファイルは私のサーバーには存在しません..
Debian を実行しています。どうすればよいですか?
標準入力を標準出力およびコマンドラインで指定されたファイルに複製するtee (1) コマンドを使用します。例えば
printf "こんにちは\nこれはテストです\nありがとう\n" | | ティー test1.txt test2.txt $OTHER_FILES >/dev/null
あなたの例を使用して:
猫atest.txt | | ティー asdasd.txt asgfaya.txt asdjfusfdgh.txt asyeiuyhavujh.txt >/dev/null
単純ではありませんか:
cp atest.txt asdasd.txt
cp atest.txt asgfaya.txt
cp atest.txt asdjfusfdgh.txt
cp atest.txt asyeiuyhavujh.txt
?
bashでは、次のように書くことができます
#!/bin/bash
$TEXT="hello\nthis is a test\nthank you"
for i in `seq 1 $1`; do echo -e $TEXT >text$i.txt; done
編集(質問の変更に応じて)
プログラムでターゲット ファイルの名前を特定できない場合は、次のスクリプトを使用できます。
#!/bin/bash
ORIGIN=$1;
shift
for i in `seq $#`; do cp "$ORIGIN" "$1"; shift; done
次のように使用できます:
script_name origin_file dest_file1 second_dest_file 'third file' ...
なぜcpコマンドに二重引用符があるのか 疑問に思っている場合は、スペースを含むファイル名に対処するためです
bash プロンプトから:
for f in test1.txt test2.txt test3.txt; do echo -e "hello\nworld" >> $f; done
テキストが atest.txt にある場合は、次のようにします。
for f in test1.txt test2.txt test3.txt; do cat atest.txt >> $f; done