sed 's/^ \{2,\}//' -i filename.html
But that exact same code doesn't run when it's in a Perl script. No error message, the script itself runs, but my file doesn't get changed. The only difference from the command line version is that in the script I enclose the code in backticks and add a semicolon at the end.
I did some troubleshooting and found that my sed command would run properly when called from my Perl script as long as the regexp was simple (e.g., s/blue/green/) , but it failed when I either used the ^ operator to signal the start of a line, or the \{2,\} notation to specify 2 or more matches.
I know that I could get the result I want with Perl exclusively by opening the file, reading the contents, applying a substitution regexp, saving the file back to the disk, and closing it, but that seems rather cumbersome when I should be able to do it with a single line.
I do really need to run this from a script rather than the command line, because once I get it working I'll actually be processing thousands of files, and using Perl to evaluate filenames and last mod dates to determine whether a particular file needs to be edited.
What am I doing wrong?
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |