[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sed - Problem



Hallo,

Am Wed, 31 Aug 2005, Michelle Konzack schrieb:
>Am 2005-08-31 11:52:03, schrieb Mario 'BitKoenig' Holbe:
>> Michelle Konzack <linux4michelle@freenet.de> wrote:
>> > Am 2005-08-31 11:23:33, schrieb Christian Frommeyer:
>> >> sed -r -e 's/.*@@([^@]*)@@.*/\1/g' -e 's/\s*+/00/' -e 's/[^0-9]//g'
>> > Das ist aber nicht gut...
>> > Besser:
>> > sed -r -e 's/.*@@([^@]*)@@.*/\1/g;s/\s*+/00/;s/[^0-9]//g'

Ist '-r' portabel?

$ zgrep -- '\-r' `man -w sed`
and the bug-reporting address,
After the address (or address-range),
executed if the address (or address-range) does

>> Rein interessehalber... Warum ist das nicht gut? Gibts da irgendwelche
>> Unterschiede zwischen beiden Varianten?
>
>"-e" spannt jedesmal einen neune einen editor

Was?

>Du kannst aber alle aktionen Zeile für Zeile in eine Datei schreiben
>und "sed" mit
>
>    sed --script-file <datei>

$ sed --script-file /dev/null
sed: unrecognized option `--script-file'
[...]

'sed -f' oder bei GNU-sed: 'sed --file'

Es geht uebrigens auch:

,----[ delemptylines ]
| #!/usr/bin/sed -f
| /^[[:space:]]*$/d
`----

Noch nen 'chmod u+x' hinterher und feddich. Praktisch hinter einem
'cpp' (oder 'gcc -E') ohne '-o'.

$ echo -e '#include <linux/version.h>\nUTS_RELEASE\n' \
    | gcc -E - | delemptylines

>aufrufen und sed arbeitet dann eine Zeile nach der anderen ab.
>Auf der Commandline, wird das dann so angegeben wie ich es gemacht habe,
>also
>
>    -e "first;second;third;..."
>
>jede Aktion also mit ";" getrennt.

Oder durch einen Zeilenumbruch. Genau wie in einem sed-script.

$ seq 1 9 | sed -n '1 {
    s/1/X/
    p
}
5p'
X
5

HTH & HAND,
-dnh

-- 
When I woke up this morning, the cat was barfing on me.  Things have
gone downhill since then.                         -- Michel Buijsman



Reply to: