2014-09-11 44 views
0

我要尋找一個SED表達允許移動中:需要一個sed命令來替換一個axpression的

expression1\expression2\expression3 

expression1\expression3 

和ofcourse表達式2是在所有的文件不同至於我需要執行命令。

現在我的解決方案是專注於expression2之間的兩個'\',但我沒有找到正則表達式來匹配2個已知字符之間的任何單詞。

任何想法一次完成此操作?

回答

3

你可以試試下面的SED命令\

$ echo 'expression1\expression2\expression3' | sed 's~\\.*\\~\\~g' 
expression1\expression3 
$ echo 'expression1\expression2\expression3' | sed 's~\\[^\\]*\\~\\~g' 
expression1\expression3 
1

您可以使用awk來取代所有這些都存在內\的字符(包括\):

s='expression1\expression2\expression3' 
awk 'BEGIN{FS=OFS="\\"} {print $1, $3}' <<< "$s" 
expression1\expression3 

使用SED:

sed 's~^\([^\\]*\)\\[^\\]*\(\\.*\)$~\1\2~' <<< "$s" 
expression1\expression3