我寫在乳膠文件和我正在尋找一種方法來自動刪除我的文檔一些色彩。當有\文本顏色中的文本添加{|}更新{...},它應該保持和\文本顏色內evreything {}刪除{...}應予以刪除。當然\ textcolor也應該被刪除。BASH:如何提取特定的大括號之間的文本,並讓對方
我只是找不到一個正則表達式將匹配。它只是採取的第一個和該行的最後一個大括號不cheking他們屬於文本顏色。
這是我的代碼:
for i in [email protected]
do
sed -i 's/\\textcolor{update}{\(.*\)\}/\1/g' $i
sed -i 's/\\textcolor{add}{\(.*\)\}/\1/g' $i
sed -i 's/\\textcolor{delete}{\(.*\)\}//g' $i
done
舉例來說,如果我有這樣的:
這不會改變和\ {文本顏色UDPATE} {這是我修改 \ textbf {文字}!} \ {VSPACE 0.3}
我得到這個:
這不會改變,這是我修改\ textbf {文本}}! \ {VSPACE 0.3
我應該得到這樣的結果:
這不會改變,這是我修改過的\ textbf {text} !! \ {VSPACE 0.3}
此外,我也想能夠得到這一結果:
這不會改變和\ {文本顏色刪除} {這是我刪除 \ textbf {文本}!} \ {VSPACE 0.3}
給
這不會改變和\ {VSPACE 0.3}
到目前爲止,我竭力避免與一個200行的腳本這個問題,但我敢肯定有使用sed例如一個簡單的方法。
非常感謝!
嘗試'sed的 'S/\\的文字顏色{更新} {\([^}] \ + \)\}/\ 1 /'':) – 2014-11-25 10:26:06
我很抱歉不工作(一個大括號是不是在正確的地方),但它是接近:) – 2014-11-26 19:32:20