変更内容を含むファイルのコピー

変更内容を含むファイルのコピー

私は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

おすすめ記事