我已经得到了我想要做一个财产替代属性文件,所以我写了一个sed图案改变桑达物业替代
host = 1234
与另一个值,但是当我执行
echo "host = 1234" | sed 's/\#*\(host[ \t]*\)\=\([ \t]\d*\)/\1\=\1/g'
我知道替换已完成(host = host),但\ 2原子也附加到字符串的末尾(1234)。我怎样才能删除它?
`host =host 1234
我已经得到了我想要做一个财产替代属性文件,所以我写了一个sed图案改变桑达物业替代
host = 1234
与另一个值,但是当我执行
echo "host = 1234" | sed 's/\#*\(host[ \t]*\)\=\([ \t]\d*\)/\1\=\1/g'
我知道替换已完成(host = host),但\ 2原子也附加到字符串的末尾(1234)。我怎样才能删除它?
`host =host 1234
第一个问题是\d
不符合您的想法。至少使用[0-9]
。
你仍然得到host =host
了,这对我来说似乎很疯狂。
编辑:
好
echo "host = 1234" | sed 's/#*\host[ \t]*=[ \t]*\([0-9]*\)/host = asdf/g'
我希望你明白。
但在这里,你可能想要的东西:
sed '/^#/!s/[ \t]*\([^ \t]*\)[ \t]*=[ \t]*\([^ \t]*\)/\1 = newvalue/g' input_file
这将在input_file
非注释行更改anything = anything
到anything = newvalue
。使之成为特定键是由newvalue
替换,可使用:
sed '/^#/!s/[ \t]*\(host\)[ \t]*=[ \t]*\([^ \t]*\)/\1 = newvalue/g' input_file
到例如只替换读取host = anything
的行。
这是否适合您的需求?
echo "host = 1234" | cut -d"=" -f 1
产生
host
然后,
echo "host = 1234" | cut -d"=" -f 1
产生
1234
它做什么你告诉它做的事。你想要做什么?请提供样品输入线和所需的输出线。 – Sorpigal 2012-02-27 12:33:13
我想要更改主机=与主机= ,例如可以是\ 1或计算一个。在上面的例子中,newvalue变成了\ 1,其余的行 –
fluca1978
2012-02-27 12:33:43