Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grep: shortcut exit path for -q #710

Merged
merged 2 commits into from
Aug 12, 2024
Merged

Conversation

mknos
Copy link
Contributor

@mknos mknos commented Aug 10, 2024

  • The -q flag in grep is concerned if a match was found in any file
  • The program can successfully terminate after the first match without searching subsequent files in argument list
  • GNU grep behaves in this way; strace on my Linux system confirms that only the 1st file in argument list is opened when that file contains a match
%strace  grep -q perl ar awk 2> trace # gnu grep
%grep open trace
...
openat(AT_FDCWD, "ar", _RDONLY|O_NOCTTY|O_LARGEFILE) = 3
^^^ final openat() in process

* -q flag of grep is concerned if a match was found in any file
* The program can terminate after the first match without searching in subsequent files
* GNU grep behaves in this way; strace on my Linux system confirms that only the 1st file in argument list is opened when that file contains a match

%strace  grep -q perl ar awk 2> trace # gnu grep
%grep open trace
...
openat(AT_FDCWD, "ar", _RDONLY|O_NOCTTY|O_LARGEFILE) = 3
^^^ final openat() in process
@github-actions github-actions bot added Type: enhancement improve a feature that already exists Priority: low get to this whenever Program: grep The grep program labels Aug 10, 2024
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:58 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 01:59 — with GitHub Actions Inactive
@coveralls
Copy link

coveralls commented Aug 10, 2024

Pull Request Test Coverage Report for Build 10328105717

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.7%) to 73.069%

Totals Coverage Status
Change from base Build 10316135952: -0.7%
Covered Lines: 350
Relevant Lines: 479

💛 - Coveralls

@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos temporarily deployed to automated_testing August 10, 2024 02:06 — with GitHub Actions Inactive
@mknos mknos had a problem deploying to automated_testing August 10, 2024 02:07 — with GitHub Actions Failure
@briandfoy
Copy link
Owner

changes: stop looking after first match with -q.

@briandfoy briandfoy merged commit 70393e7 into briandfoy:master Aug 12, 2024
20 of 22 checks passed
@briandfoy briandfoy self-assigned this Aug 12, 2024
@briandfoy briandfoy added Status: accepted The fix is accepted and removed Priority: low get to this whenever labels Aug 12, 2024
@briandfoy briandfoy added Status: released there is a new release with this fix and removed Status: accepted The fix is accepted labels Sep 30, 2024
@briandfoy briandfoy added Type: compatability make it work like GNU or BSD and removed Type: enhancement improve a feature that already exists labels Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Program: grep The grep program Status: released there is a new release with this fix Type: compatability make it work like GNU or BSD
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants