我有以下形式的文本文件:更換除註釋第一次出現使用sed的
a = 1
#b = [2,3]
c = 4
d = [5,6]
e = [7,8]
我想更換支架(和括號內)與一些內部格局,但忽略評論比賽,最好使用sed。
對於恰好與一個匹配行的文件,我用
sed -i "/^#/!s/\[.*\]/9/" myfile
怎麼可以這樣修改,如果有更多的僅替換第一場比賽?
我有以下形式的文本文件:更換除註釋第一次出現使用sed的
a = 1
#b = [2,3]
c = 4
d = [5,6]
e = [7,8]
我想更換支架(和括號內)與一些內部格局,但忽略評論比賽,最好使用sed。
對於恰好與一個匹配行的文件,我用
sed -i "/^#/!s/\[.*\]/9/" myfile
怎麼可以這樣修改,如果有更多的僅替換第一場比賽?
這是正確的,因爲只是改變了第一次發生。
awk '!end && /^[^#]+ = \[/ {$3="9"; end=1}1' myfile
#
和匹配beggining到= [
,然後改變在第三列,並設置一個標誌,以防止在接下來的出現次數改變。a = 1
#b = [2,3]
c = 4
d = 9
e = [7,8]
< ---這是你想要的 「E」
這一個班輪應該做的工作:
sed '/^\s*#/!{s/\[[^]]*\]/9/}' file
,如果你喜歡做的到位的變化添加-i
選項。
值不會改變不是從處理樣品dat一個。 –
它不應該,是嗎?正如作者所說_ _如何修改以取代只有第一個匹配,如果有更多的?_ ?? –
謝謝!這完全按照我在問題中提問的方式執行。但是,如果'='左側有多個字符,則不起作用。任何想法? – user19498