2017-11-14 4 views
-1

は、だから何イムが何をしようとすると、私は世界的に変更する必要があり、その中に次のパラメータを持っているファイル(複数可)を取るです:私は変更する必要が変数は、文字列を置換する

level value="something" 

それらのすべてに:

level value="somethingelse" 

私のループやsedスクリプトに問題がイム - 私は、ファイルに、このような値を持って言うことができます:

level value="ABC" 
level value="DEF" 
level value="GHI" 
level value="I DONT KNOW" 

は、私はそれらのすべてになる必要があります。

level value="XYZ" 

事は、私はレベル値のすべてが何であるかを知らないで、彼らは何でもかまいません。それで、なぜ私はそれらを1つのレベル値に標準化しようとしていますか。ループとsedでこれを行う方法はありますか?私は助けていただきありがとうございます!

+0

何かにマッチする正規表現を書く方法が分かりませんか?それは最も基本的なものの1つです。 – Barmar

+0

そうでない場合は、regular-expression.infoの正規表現チュートリアルを読んでください。 – Barmar

+0

ところで、あなたの実際の入力がXMLの場合、あなたが仕事に使うことができるより良いツールがあります。 'xmlstarlet ed -u // level/@ value 'と同じくらい簡単かもしれません-v XYZ out.xml' –

答えて

0

はこれを試してみてください:非"文字が続くとき

sed 's/\(level value="\)[^"]*/\1XYZ/' file 

level value="が捕捉されます。逆参照を使用すると、取り込まれた文字列が出力され、その後に新しい値XYZが出力されます。

関連する問題