On 2008-01-06, Steven D'Aprano <[EMAIL PROTECTED]> wrote: > On Sun, 06 Jan 2008 13:33:52 -0800, Francesco Pietra wrote: > >> Steven: >> Thanks. See below please (of very marginal interest) >> >> --- Steven D'Aprano <[EMAIL PROTECTED]> wrote: >> >>> On Sun, 06 Jan 2008 09:21:33 -0800, Francesco Pietra wrote: >>> >>> > Please, how to adapt the following script (to delete blank lines) to >>> > delete lines containing a specific word, or words? >>> >>> That's tricky, because deleting lines from a file isn't a simple >>> operation. No operating system I know of (Windows, Linux, OS X) has a >>> "delete line" function. >> >> As I am at Debian Linux, I do that with grep -v > > grep doesn't delete lines. grep matches lines.
grep does far more than that. > If you want to delete them, you still have to do the rest of > the job yourself. Nonsense. How is this not doing what the OP asks? grep -v pattern infile >outfile; mv outfile infile If you don't like explicitly using a second file, you can use sed: sed -i '/pattern/d' filename >>> Secondly, you might want the script to write its output to a file, >>> instead of printing. So, instead of the line "print line", you want it >>> to write to a file. >> >> may be cumbersome, though I use 2>&1 | tee output file.pdb so that I >> can see what happens on the screen and have the modified file. > > Yes, matching lines and sending them to stdout is a better > solution than trying to delete them from a file. If you're matching all lines that don't contain the pattern in question, then matching all lines and sending them to stdout _is_ a way to delete them. -- Grant Edwards grante Yow! And furthermore, at my bowling average is visi.com unimpeachable!!! -- http://mail.python.org/mailman/listinfo/python-list