2013-08-06 70 views
0

我有這條線的幾個文件:正則表達式 - 匹配一個單詞和替換內容之前

<2-10 digits> ; word

我想要替換所有的別的東西這個詞在這之前到來的數字。我怎樣才能做到這一點?

+0

請告訴我們您正在使用哪種語言/工具正則表達式。 – anubhava

+0

對不起,我試圖在bash for循環中使用像sed這樣簡單的東西。 –

+0

你能否提供一些樣本輸入和預期輸出。 – anubhava

回答

2
sed -i -e 's/.*word/something;word/g' <filename> 

要遍歷目錄中的多個文件。我假設.txt文件的文件擴展名:

for i in `\ls -1 *.txt` 
    do 
    sed -i -e 's/.*word/something;word/g' $i 
done 

注:sed -i將交互修改文件。所以,測試命令沒有-i選項來檢查這是你想要的,然後去爲它...

+0

這個正則表達式很簡單,它爲我工作,謝謝。 –

1

UPDATE: SED例如:

s="999 abc 1234 ; word 567" 
echo $s | sed 's/^\(.* \)[0-9][0-9]*\(; word.*\)$/\1something\2/g' 

OUTPUT:

999 abc something ; word 567 
相關問題