首先,我不知道這是否實際可行,但我想要做的是重複一個正則表達式模式。 我使用的模式是:重複一個正則表達式
sed 's/[^-\t]*\t[^-\t]*\t\([^-\t]*\).*/\1/' films.txt
的
250. 7.9 Shutter Island (2010) 110,675
一個輸入將返回:
Shutter Island (2010)
我匹配的所有無標籤,(250),那麼標籤,然後全部無選項卡(7.9),然後選項卡。接下來我回顧電影標題,然後匹配所有剩餘的字符(110,675)。
它工作正常,但即時通訊學習正則表達式,這看起來很醜陋,正則表達式[^ - \ t] * \ t在它本身之後重複,是否有重複這個像你可以像一個字符{2, 2}?
我試過([^-\t]*\t){2,2}
(和變化),但我猜,嘗試匹配[^-\t]*\t\t?
此外,如果有什麼辦法讓我上面的代碼更短和更清潔的任何幫助,將不勝感激。
它也可能有助於解釋你想要的結果。 – 2010-10-20 16:53:36
乾杯這個工作完美,謝謝你的鏈接,將幫助調試/學習更好的正則表達式 – akd5446 2010-10-20 17:06:30
我喜歡這是多麼簡潔,並且在你的鏈接中看到*匹配*,但是它是如何使用的以及用什麼命令從行中提取名稱/日期?因爲它沒有一個捕獲組和替換,所以沒有看到它與'sed'一起使用它。如果你添加一個在命令中使用它的例子, oduce輸出列出文件中的名稱。 – 2010-10-20 23:48:39