複製文件的內容

複製文件的內容

我有一個要求,如果滿足特定條件,我需要將文件的全部內容複製到同一個文件中。這是文件:

$ 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

Acat file.txt >> file.txt應該可以解決這個問題,>>將 stdout 的內容附加到指定檔案的末尾

答案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

相關內容