0

sed を使用して、ファイル内の複数行のテキストを置き換えたい状況があります。検索テキストは次のとおりです。

Enable=Yes
UseTest=No
UseTempS=No
UseStatic=No
IPAddress=
SubnetMask=
DefaultGateway=

そして、置き換えるテキストは

Enable=No
UseTest=No
UseTempS=No
UseStatic=No
IPAddress=0.0.0.0
SubnetMask=255.255.255.0
DefaultGateway=1.1.1.1

どんな助けでも大歓迎です。

4

3 に答える 3

0

これらのフィールドを順番に一致させたい場合は、読みながら、1 つの移植可能な方法を使用します。

sed -e   '/Enable=Yes/!b;N;
   /UseTest=No/!b;N;     
   /UseTempS=No/!b;N;    
   /UseStatic=No$/!b;N;  
   /IPAddress=$/!b;N;    
   /SubnetMask=$/!b;N;   
   /DefaultGateway=$/!b; 
   s/.*//;rtemplate' input

テンプレート

Enable=No
UseTest=No
UseTempS=No
UseStatic=No
IPAddress=0.0.0.0
SubnetMask=255.255.255.0
DefaultGateway=1.1.1.1
于 2013-07-18T08:17:50.107 に答える
-1
cat yourfile.txt | sed -f zarmacimamadzaghli.sed

zarmacimadzaghli.sed

s/Enable=Yes/Enable=No/
s/UseTest=No/UseTest=No/
s/UseTempS=No/UseTempS=No/
s/UseStatic=No/UseStatic=No/
s/IPAddress=/IPAddress=0.0.0.0/
s/SubnetMask=/SubnetMask=255.255.255.0/
s/DefaultGateway=/DefaultGateway=1.1.1.1/
于 2013-07-18T08:11:23.077 に答える