How to make grep stop at first match on a line?

前端 未结 4 1311
Happy的楠姐
Happy的楠姐 2021-02-14 08:03

Well, I have a file test.txt

#test.txt
odsdsdoddf112 test1_for_grep
dad23392eeedJ test2 for grep
Hello World test
garbage

I want to extract strings which h

4条回答
  •  清歌不尽
    2021-02-14 08:44

    As the questioner discovered, this is a bug in versions of GNU grep prior to 2.5.3. The bug allows a caret to match after the end of a previous match, not just at beginning of line.

    This bug is still present in other versions of grep, for instance in Mac OS X 10.9.4.

    There isn't a universal workaround, but in the some examples, like non-spaces followed by a space, you can often get the desired behavior by leaving off the delimiter. That is, search for '[^ ]*' rather than '[^ ]* '.

提交回复
热议问题