Bash

複製內容已更改的文件

  • July 12, 2019

我正在編寫 bash 腳本,我需要將一些文件儲存為.bak文件並在開始時更改它的內容(sed為此使用)。

我正在尋找更好的方法來為我的 bash 腳本寫下來。

cp file.txt file.txt.bak | sed -i '1i#Backup file' file.txt.bak

也許有人知道更有效的方法來做到這一點,或者如何只通過 sed 或不使用管道來做到這一點。

管道在那裡根本沒有做任何事情。cp沒有輸出,因此您不能將其輸出通過管道傳輸到另一個程序。我猜你想要;或者&&相反:

## copy the file and then run sed
cp file.txt file.txt.bak; sed -i '1i#Backup file' file.txt.bak

或者

## copy the file and then run sed BUT only if the copy was successfull
cp file.txt file.txt.bak && sed -i '1i#Backup file' file.txt.bak

但是,如果您想要的只是更改了第一行的原始文件的副本,那麼 sed 確實可以為您完成:

sed  '1i#Backup file' file.txt > file.txt.bak

引用自:https://unix.stackexchange.com/questions/529800