2015-12-03 105 views
0

我正在嘗試搜索並替換一個字符串,在shell腳本中對該模式進行反向搜索。如何在shell腳本中進行反向搜索

我試圖與下面的,但它不是爲我工作

sed -r 's/ $/,/' 

我試圖將此搜索和具有內容的文件替換像下面

0 1 2 Comp level 

我想第三個空格替換爲逗號

輸出應該像

0 1 2,Comp level 
+0

「做一個*落後*搜索」 - 爲什麼?這將如何幫助? –

+0

爲什麼倒退?一個簡單的正則表達式可以很容易地處理這個問題 –

+1

我正在做一個向後搜索的原因是我有[這將在腳本中動態生成]的文件中,我確信我需要在第三個最後模式中的逗號,但在做向前搜索我不知道我需要跳過多少模式 –

回答

1

要通過,更換第三空間:

echo '0 1 2 Comp level' | sed 's/ /,/3' 

輸出:

 
0 1 2,Comp level 
+0

謝謝,我不知道有這個標誌。 –

+0

感謝賽勒斯,但它是一個前向搜索,在這裏應用,我的數據可能是0 1 2,比較級別或它也可能是0 1 2 3 4,比較級別,所以表示跳過數量的標誌是應用於模式將是動態的,如果我做一個向前搜索 –

+1

@BlessonMathew:試試這個:'echo'0 1 2 Comp level'| rev | sed's//,/ 2'| rev'或'echo'0 1 2 Comp level'| sed -E'/([^ 0-9])/,\ 1 /'' – Cyrus