我只想打印符合條件的行:「worde:」和「wordo;」 我到目前爲止:我的sed很接近......但不是那裏,你能幫忙嗎?
sed -n '/\([a-z]*\)\1e:\1o;/p;'
但它不太工作。 有人可以請完善它,並告訴我究竟它是一個固定版本/我的錯在哪裏? (請注意,沒有大寫字母過,因此爲什麼我沒有理會包括我的首字符範圍內)
感謝堆,
我只想打印符合條件的行:「worde:」和「wordo;」 我到目前爲止:我的sed很接近......但不是那裏,你能幫忙嗎?
sed -n '/\([a-z]*\)\1e:\1o;/p;'
但它不太工作。 有人可以請完善它,並告訴我究竟它是一個固定版本/我的錯在哪裏? (請注意,沒有大寫字母過,因此爲什麼我沒有理會包括我的首字符範圍內)
感謝堆,
我你的問題的解釋是,你要匹配線,同時包含worde:
和wordo;
sed -n '/worde:/{/wordo;/p}' infile
的-n
參數禁止打印模式空間(infile
)時,第一正則表達式匹配的sed,則控制流入塊中,如果正則表達式不匹配,則該行是忽略。在塊內部,如果第二個正則表達式匹配,則會打印該行。
一種方法使用交替:
sed -n '/word\(e:\|o;\)/ p' infile
是否使用捕捉組的要求?我沒有他們去。
$ sed -n '/[\w]*[oe][:;]/p'
[\w]*
- 匹配任何單詞字符。 (如果你真的想只[a-z]
,交換 ,早在)[oe]
- 那些字字符必須在e
或 o
[:;]
結束 - 然後有一個:
或;
這將處理「worde:wordo」的行出現(詞之間沒有):
sed -n '/\([a-z]*\)e:\1o;/p;'
如果你需要允許的話字符,你需要這樣的事:
sed -n '/\([a-z]*\)e:.*\1o;/p;'
爲了指出可能不那麼明顯,在'e'之前放下'\ 1' – 2012-03-29 18:02:25
這可能會爲你工作:
sed '/^\(.*\)[eE]:\s*\1[oO];/!d' file
它以什麼方式不起作用?它的結果與你期望的結果有什麼不同? – 2012-03-29 16:41:24