私はbashスクリプトを作成しており、いくつかのファイルをファイルとして保存し、.bak
最初にその内容を変更する必要があります(sed
この目的のために)。
私のbashスクリプトに対してこれを書くより良い方法を探しています。
cp file.txt file.txt.bak | sed -i '1i#Backup file' file.txt.bak
おそらく、誰かがこれを行うより効率的な方法を知っているか、sedを使用するか、パイプを使用せずに行う方法を知っています。
ベストアンサー1
パイプはそこから全く何もしません。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