ファイルの内容をコピーしてください。

ファイルの内容をコピーしてください。

特定の条件が満たされると、ファイルの内容全体を同じファイルにコピーする必要があります。ファイルは次のようになります。

$ 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

関連情報