第一字符串添加單詞,我有以下文件SED +匹配線以及符合
more file
machine1 network netmask broadcast
如何在具有「網絡掩碼廣播」行的第一個字後添加「_NAME」字?
句話的sed也只需匹配「網絡掩碼廣播」,然後_NAME添加到第一個字線
例如:什麼,我需要得到後執行sed命令
machine1_NAME network netmask broadcast
第一字符串添加單詞,我有以下文件SED +匹配線以及符合
more file
machine1 network netmask broadcast
如何在具有「網絡掩碼廣播」行的第一個字後添加「_NAME」字?
句話的sed也只需匹配「網絡掩碼廣播」,然後_NAME添加到第一個字線
例如:什麼,我需要得到後執行sed命令
machine1_NAME network netmask broadcast
這應該工作,因爲我們沒有使用g
改性劑,它只會每行
sed -e 's/^[^ ]*\>/&_NAME/'
它匹配非空格字符匹配一旦達到第一個字博用其自身替換,並追加_NAME
。如前所述,如果沒有g
修飾符,它只會每行匹配一次,並且如果行上有空白,請刪除第一個^
-anchor。
編輯
你只希望它匹配特定的線路,所以這裏有雲:
sed -e '/network netmask broadcast$/s/^[^ ]*\>/&_NAME/'
第一部分是一個選擇,這可以確保替代僅在線路,其中network netmask broadcast
兩端進行該線。爲了使它與任何行匹配,只需刪除$
-anchor,然後將*
(space-asterisk)添加到空格以使其變得靈活。但你可能已經知道.. :)
sed '/network.*netmask.*broadcast/s|^\([ \t]*\)\(.[^ \t]*\) |\1\2_NAME|' file
@roe:某些版本的'sed'不需要'-e'。 – 2010-08-30 15:46:41
@roe:除非你知道你在做什麼,否則不要編輯 – ghostdog74 2010-08-30 16:10:20
對不起,我只是想幫助,-e從來沒有錯,但它可能是不正確的不使用它,即使用它會幾乎總是比較安全。我的錯。 – falstro 2010-08-30 17:54:34