in reply to Why dot does not match newline in oneliner but it does in script, with /s modifier?
You are running perl -p which by default processes each line in isolation, therefore your regex will never match because you don't have a line with both an opening and closing brace on it, for example.
You could change the line-ender to null to switch this behaviour off:
$ perl -lp0e 's/A\s*\{.+?\}//s' <<EOX > A { > B 123 > C xyz > } > EOX
This gives the empty output as you initially expected.
Update: See the discussion in the follow-up question Oneliner replace in-place adds extra spaces at the end of the file particularly in regards to the use of -l and how the order of these options is important.
🦛
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Why dot does not match newline in oneliner but it does in script, with /s modifier?
by bliako (Abbot) on Oct 24, 2025 at 21:22 UTC |