-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
--max-count breaks -passthru #2094
Copy link
Copy link
Closed
Labels
bugA bug.A bug.
Description
What version of ripgrep are you using?
ripgrep 13.0.0
-SIMD -AVX (compiled)
+SIMD +AVX (runtime)
How did you install ripgrep?
n/a
What operating system are you using ripgrep on?
Darwin redacted 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:23 PDT 2021; root:xnu-8019.41.5~1/RELEASE_X86_64 x86_64
Describe your bug.
echo $'a\nb\nc\na\nb\nc' | rg --no-line-number --color never --multiline -m 1 --passthru 'b' --replace 'B'outputs
a
B
not the expected output of:
a
B
c
a
b
c
This breaks the beneficial usage of --passthru, which is often used like so:
rg --multiline --passthru --max-count 1 "$pattern" --replace "$replace" "$file" | sponge "$file"In my use case, I want to replace the first match with something, and trim away the remaining matches:
random="$RANDOM$RANDOM$RANDOM$RANDOM"
if rg --multiline --passthru --max-count 1 "$pattern" --replace "$random" "$file" | sponge "$file"; then
rg --multiline --passthru "$pattern" --replace '' "$file" | sponge "$file" || :
rg --multiline --passthru "$random" --replace "$replace" "$file" | sponge "$file"
fiWhat are the steps to reproduce the behavior?
Run the code snippet earlier.
What is the actual behavior?
Run the code snippet earlier.
What is the expected behavior?
Documented earlier.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugA bug.A bug.