別のディレクトリにあるファイルのパスワードフィールドを置き換える必要があります(検索と置換)。すべてのフィールドの形式は次のとおりです。field = value
私が試したことは次のとおりです。
grep -i fieldofinterest /etc/filemod*/*| sed 's/[=].*$/ = myvalue/'
これはうまくいきますが、作成しようとすると入力ファイルが提供されていないというエラーが発生します。
この交換作業を実行するにはどうすればよいですか?
答え1
即興:
grep -l fieldofinterest /etc/filemod*/* | while read filename; do
sed 's/fieldofinterest.*/fieldofinterest = myvalue/' "$filename" > tmp && mv tmp "$filename"
done
grep -l
以下を含むファイル名を収集します。関心分野while
置換のために一時ファイルを介してループに渡します。sed
sedにある場合は、次-i
のように単純化できます。
grep -l fieldofinterest /etc/filemod*/* | while read filename; do
sed -i 's/fieldofinterest.*/fieldofinterest = myvalue/' "$filename"
done