Linux
さまざまなサブフォルダに複数の名前のプライベートファイルがあります。全体的に
DSY_OS_Release=`lsb_release --short --id |sed 's/ //g'`
と交換する必要があります
DSY_OS_Release="RedHatEnterpriseWorkstation"
コマンドラインを使用してこれをどのように達成できますか?
重複した質問のように聞こえますが、複雑な文字列に適した回答が見つかりません。
答え1
行全体を一致させる必要がない場合は、次を使用します。
sed 's/^DSY_OS_Release=.*/DSY_OS_Release="RedHatEnterpriseWorkstation"/'
実装に応じてをsed
使用することもsed -i '...' file
、新しいファイルにリダイレクトした後に元のファイルを置き換える必要があります。
ファイルセットで実行する方法は次のとおりです。すべてのファイルが特定のパターンと一致する場合(例:*.config
GNUと仮定sed
):
find /some/path -type f -name '*.config' \
-exec sed -i '...as above...' {} \;