我有一個文件'corpus.txt',我試圖得到只有兩個模式;一個是具體的<PLANET>
其他是什麼字。其實,我需要sed在全文中搜索模式。我根本做不到,我已經閱讀了許多關於我在做什麼的作品,但是我不能連接這些sed的代碼。sed:得到兩個模式,一個在其他行之前
一個例子corpus.txt是:
aaaaaaaaaaaaaaaaaaaaaaabbbbaabb and was searching through them in 1846 the German astronomer <NAME> discovers <PLANET> and it's notable for its active and visible weather patterns bbbbbbbbbbbbbbbbsssddd in 1846 a German astronomer discovers <PLANET> and it's slightly more massive than its near-twin Uranus bbbbffaaaaaaaaaaaaaaaa
對於記錄,有5行輸入的;搜索不需要跨越行。
我需要的輸出:
<NAME> discovers <PLANET> astronomer discovers <PLANET>
我想:s/\([^ ]*\) \(discovers <PLANET>\).*/\1 \2/g
我知道sed
編碼是錯誤的,但它畢竟是我由我自己了。如果我通過將結果與Unix的管道,我得到的文本和包含該模式的行中的所有行進行過濾,像這樣:
aaaaaaaaaaaaaaaaaaaaaaabbbbaabb <NAME> discovers <PLANET> and its notable for its active and visible weather patterns bbbbbbbbbbbbbbbbsssddd astronomer discovers <PLANET> and it's slightly more massive than its near-twin Uranus bbbbffaaaaaaaaaaaaaaaa
我不明白你的要求。如果下一個非空白子字符串是'',您是否需要在「發現」一詞之前查找以前的非空子字符串? –
沒必要。我只需要找到_any word_之前的模式'發現' –
aresardido
好吧,字符串'「馬塞爾:;#??發現」',你想趕上'馬塞爾'? –