我已經得到了我想要做一個財產替代屬性文件,所以我寫了一個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