
特定の条件が満たされると、ファイルの内容全体を同じファイルにコピーする必要があります。ファイルは次のようになります。
$ cat in.txt
ip
10.22.1.34
10.22.1.35
特定の条件が満たされると、例えば
if [[ d=1 ]]; then
copy the file content
fi
ファイルの内容は次のようにコピーする必要があります。
ip
10.22.1.34
10.22.1.35
ip
10.22.1.34
10.22.1.35
答え1
ファイルの内容を変数に保存し(改行文字を保存)、変数から同じファイルに追加できます。変数の周りに引用符を使用することを忘れないでください。
x=$(cat test.txt) && echo "$x" >> test.txt
または、「tee」コマンドを使用して同じファイルに直接追加することもできます。標準出力でファイルの元の内容を最初に表示するときに混同しないでください。ファイルの実際の内容もコピーされます。
cat test.txt | tee -a test.txt
teeの出力を表示したくない場合は、もちろん次のことを行うことができます。
cat test.txt | tee -a test.txt > /dev/null
答え2
次のことができます。
cat in.txt > /tmp/tmp.txt && cat /tmp/tmp.txt >> in.txt
答え3
Aは、指定されたファイルの末尾にstdoutの内容を追加することでcat file.txt >> file.txt
この問題を解決する必要があります。>>
答え4
cat
ファイルを設定したら、sedを使用して追加できます。だからこんな感じ:
cat in.txt
ip
10.22.1.34
10.22.1.35
d=1
if [ ${d} -eq 1 ]; then
cat in.txt | while read LINE; do sed -i '$a\'"${LINE}" in.txt; done
fi
cat in.txt
ip
10.22.1.34
10.22.1.35
ip
10.22.1.34
10.22.1.35