12

シェルを使用してファイルを検索し、値を置き換えることはできますか? サービスをインストールするときに、構成ファイルで変数を検索し、その値に独自の設定を置き換え/挿入できるようにしたいと考えています。

4

7 に答える 7

29

もちろん、sed または awk を使用してこれを行うことができます。例:

sed -i 's/Andrew/James/g' /home/oleksandr/names.txt
于 2012-06-01T20:16:53.590 に答える
9

sed を使用して検索/置換を実行できます。私は通常、これを bash シェル スクリプトから実行し、置換する値を含む元のファイルを新しい名前に移動し、sed を実行して、次のように元のファイル名に出力を書き込みます。

#!/bin/bash
mv myfile.txt myfile.txt.in

sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt.

出力を指定しない場合、置換は stdout に送られます。

于 2012-06-01T22:23:34.043 に答える
2
sed -i 's/variable/replacement/g' *.conf
于 2012-06-01T20:18:30.050 に答える
1

これを行うには sed を使用できます。

sed -i 's/toreplace/yoursetting/' configfile 

sed はおそらく、そこにあるすべての UNIX のようなシステムで利用可能です。複数のオカレンスを置き換えたい場合は、s コマンドに ag を追加できます。

sed -i 's/toreplace/yoursetting/g' configfile 

置換値を正しく指定しないと、構成ファイルが完全に破壊される可能性があるため、注意してください。sed は、検索と置換で正規表現もサポートしています。

于 2012-06-01T20:17:54.027 に答える
1

UNIX パワー ツールの awk、sed、grep、およびPerl を使用したファイルのインプレース編集を見てください。

于 2012-06-01T20:23:37.470 に答える
1
filepath="/var/start/system/dir1"
searchstring="test"
replacestring="test01"

i=0; 

for file in $(grep -l -R $searchstring $filepath)
do
  cp $file $file.bak
  sed -e "s/$searchstring/$replacestring/ig" $file > tempfile.tmp
  mv tempfile.tmp $file

  let i++;

  echo "Modified: " $file
done
于 2014-06-01T22:14:23.457 に答える
0

通常、これには awk や sed などのツールが使用されます。

$ sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
于 2012-06-01T20:17:19.007 に答える