2

「sed」を使用して次のことを行うスクリプトを作成しようとしています。

  • 現在のディレクトリとその下にある.configで終わるファイル(つまり、test.js.config)を検索します。
  • 文字列を別の文字列に置き換えます(例:{TEST}-> 50)
  • 結果を、最後に.configがない新しいファイルに保存します(例:test.js)
  • 元の.configファイルを削除します(例:test.js.config)

辞書のように、「検索する文字列」と「置換する文字列」を持つ別のファイルを使用できると便利です。

{テスト}=50

{FIRST_NAME}=アレックス

4

1 に答える 1

0

一連のseds///コマンドをファイルに入れることができます。

$ cat change.sed 
s/{TEST}/50/g
s/{FIRST_NAME}/Alex/g

次の構成入力がある場合:$ cat test.js.config alert({TEST})alert({FIRST_NAME})

結果は次のようになります。

$ sed -f change.sed test.js.config > test.js
$ cat test.js
alert(50)
alert(Alex)

構文は素晴らしいものではありませんが、恐ろしいものでもありません:)

OTOH、置換ファイルでブラケット構文を本当に使用したい場合は...

$ cat test.js.config 
alert({TEST})
alert({FIRST_NAME})

...および置換ファイルのキーと値のペア...

$ cat change.txt 
TEST=50
FIRST_NAME=Alex

... sedコマンドを記述して、sed置換のキーと値のペアを変更できます...

$ sed 's#\(.*\)=\(.*\)#s/{\1}/\2/g#' change.txt
s/{TEST}/50/g
s/{FIRST_NAME}/Alex/g

...そして実際の置換でこのコマンドを使用します:

$ sed "$(sed 's#\(.*\)=\(.*\)#s/{\1}/\2/g#' change.txt)" test.js.config > test.js
$ cat test.js
alert(50)
alert(Alex)
于 2012-06-01T16:26:05.983 に答える