ich will das echo pipen und dann welt2 zwischen welt1 und welt3 bekommen
Code: Alles auswählen
echo ";welt1;welt3;"
Code: Alles auswählen
echo ";welt1;welt3;"
Code: Alles auswählen
gms1:~# echo ";welt1;welt3;" | sed -e 's/welt1;welt3/welt1;welt2;welt3/'
;welt1;welt2;welt3;
Code: Alles auswählen
echo ";Welt1;Welt3;"|perl -e '$_=<STDIN>;s/([^;];)(?=[^;])/$1Welt2;/;print;'
;Welt1;Welt2;Welt3;
ja und ich glaube ich habe die blödeste gefunden:puddlejumper hat geschrieben:da gibt es ja 47 1/2 1000-Möglichkeiten...
Code: Alles auswählen
gms1:~# echo ";welt1;welt3;" | echo ";welt1;welt2;welt3"
;welt1;welt2;welt3
ja und ich glaube ich habe die blödeste gefunden:Code: Alles auswählen
gms1:~# echo ";welt1;welt3;" | echo ";welt1;welt2;welt3" ;welt1;welt2;welt3
Code: Alles auswählen
echo ";Welt1;Welt3;"|perl -e '$_=<STDIN>;s/(\w+)(\d)(?{$a=$2+1})(;)(?=[^;])/$1$2$3$1$a;/;print;'
Wow, super!!!puddlejumper hat geschrieben:Code: Alles auswählen
echo ";Welt1;Welt3;"|perl -e '$_=<STDIN>;s/(\w+)(\d)(?{$a=$2+1})(;)(?=[^;])/$1$2$3$1$a;/;print;'
Code: Alles auswählen
echo ";Welt1;Welt3"|sed 's/;/\n/g'|(cat;echo Welt2)|sort|while read x;do echo -n "$x;";done
ist allerdings auch in perlre als "highly experimental" gekennzeichnet...gms hat geschrieben:Diese Konstrukte kannte ich noch nicht, wieder etwas gelernt :
"(?{$a=$2+1})"
Das ist ein sog. Vorwärtsverweis, das Suchmuster wird nur "gefunden", wenn - wie in diesem Fall - nach dem Suchmuster auch wiederum ein "nicht-semikolon" folgt... Dieser Verweis ist in sofern wie Du sagtest eine Art Kommentar, als das er nicht mit ersetzt wird.Dieses habe ich bis jetzt noch nicht verstanden, es erfüllt hier ja nur einen optischen Zweck:
"(?=[^;])"
Auch gut!Joghurt hat geschrieben:Ich hab auch noch einenCode: Alles auswählen
echo ";Welt1;Welt3"|sed 's/;/\n/g'|(cat;echo Welt2)|sort|while read x;do echo -n "$x;";done