ファイルの内容を複製する

ファイルの内容を複製する

特定の条件が満たされた場合、ファイルの内容全体を同じファイルに複製する必要があるという要件があります。ファイルは次のとおりです。

$ 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はcat file.txt >> file.txtうまく機能するはずです。>>指定されたファイルの末尾にstdoutの内容を追加します。

答え4

catファイルに ting を実行してから、 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

関連情報