Bash
複製內容已更改的文件
我正在編寫 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