0
使用GNUgrep
:如何讓`grep -o`只輸出一行中的第一個匹配項?
echo zabczabc | egrep -o 'a{1}'
a
a
這裏的目標是隻輸出第一 「一」,而不是第二。添加-m 1
不起作用。
不使用的配管的任何UTIL,(即| tail -1
),確實GNUgrep
單獨提供任何方式來只輸出第一,(或更好的Ñ th)時,匹配來自一個線?
Perl風格grep -P
答案還可以。或者,如果上述已知是或者證明是不可能的,那也是一個答案。
注:這不是2009年問題How to make grep stop at first match on a line?的副本,因爲在這個問題的答案:
- 的OP解決了非一般的答案。
- 似乎有某種
grep
版本相關的錯誤。
追加'| grep -m 1 .'。 – Cyrus
@Cyrus:謝謝。 Q不清楚,我的意思是沒有任何其他util的管道,包括'grep'。現在已經改寫Q來消除這個漏洞。 – agc
使用GNU grep? 'grep -Po'^。*?\ Ka {1}(?=。* $)'' – Cyrus