【发布时间】:2012-02-13 02:33:45
【问题描述】:
这里是第一张海报。
尝试使用 sed 查找和替换单词。代码如下:
configFile=ConnectionConfig.xml
sed 's/30??\" authentication=\"someuniqueauthkey/'$1'\" authentication=\"someuniqueauthkey/' $configFile
我会像这样运行文件:
./choosePort.sh 3001
当我运行这段代码时,没有给出错误的正则表达式格式,它只是不替换任何东西,tempXml.xml 的内容只是 ConnectionConfig 的内容,没有改变。
我想做的是识别 30 中的任何数字 3000 - 3099?表达的一部分,我认为是什么'?做了。
我要更改的输入行是:
<host id="0" address="someip" port="3001" authentication="someauthkey"
提前致谢。 (出于安全原因,文件中的 Ip 和 authkeys 被清除)。
【问题讨论】:
-
您能否将您的代码剥离到与 sed 直接相关的部分?您能否发布您的输入文件的某些部分?
-
30 是多少?应该是什么意思你想和这个搭配什么?你为什么要在
'里面逃避"? -
30??应该是 30,然后是任何 2 个字符。
-
我在 ' 中转义 " 因为 " 是字符串的一部分。