我只想打印匹配的線和帶無與倫比的,但以下幾點:不打印無與倫比的文本與sed的
$ echo test12 test | sed -n 's/^.*12/**/p'
我總是得到:
** test
代替:
**
我在做什麼錯?
[EDIT1]
我提供什麼,我需要更多的信息 - 實際上我應該開始使用它。所以,我有一個生成大量輸出行的命令,我只想抓取部分行 - 匹配的行,並且剝離結果。所以在上面的例子中,12是爲了找到該行的匹配部分的結尾,而不是**,我應該把&代表匹配的字符串。因此,完整的例子是:
echo test12 test | sed -n 's/^.*12/&/p'
產生完全相同的輸出輸入:
test12 test
預期的輸出結果是:
test12
至於建議,我開始找到了grep的替代以下看起來很有希望:
$ echo test12 test | grep -Eo "^.*12"
但我看不到如何格式化匹配的部分,這隻會剝離不匹配的文本。
對於我來說不是很清楚你想要什麼,但也許是這樣的:'echo test12 test | sed -n's /^.* 12。*/**/p''。 – archemiro
如果'echo'的輸出看起來不像您的輸入文件,請發佈您的輸入文件。 –