Wenn ich
cd /usr/sbin
/bin/ls -1 | grep ^rpc\.
eingebe, dann wird mir auch "rpcinfo" angezeigt; erst mit
/bin/ls -1 | grep ^rpc\\.
wird "rpcinfo" nicht angezeigt. Warum muss ich das "escape"-Symbol noch
mal extra "escapen"?
Gilt jedenfalls f�r GNU-Grep 2.5.0 und 2.5.4.
Viele Gruesse
Helmut
"Ubuntu" - an African word, meaning "Slackware is too hard for me".
> cd /usr/sbin
> /bin/ls -1 | grep ^rpc\.
Hier nimmt die Shell das "escape"-Symbol weg.
Das grep sieht nur "^rpc."
> /bin/ls -1 | grep ^rpc\\.
Beim 2."escape"-Symbol gelangt dieses zum grep.
grep sieht jetzt also "^rpc\.".
Damit ist der Punkt für das grep jetzt wörtlich zu nehmen.
Gruß
--
echo "zvpunry....@zngrean.qr" | tr A-Za-z N-ZA-Mn-za-m
grep-Argumente o. ᅵ. setze ich immer in "", sonst gibt das nur ᅵrger.
$ touch rpcinfo
$ touch rpc.test
$ ls -1 | grep ^rpc.
rpc.test
rpcinfo
$ ls -1 | grep ^rpc\\.
rpc.test
$ ls -1 | grep "^rpc\."
rpc.test
Bye
Achim
Du meintest am 14.12.09:
>> Wenn ich
>>
>> cd /usr/sbin
>> /bin/ls -1 | grep ^rpc\.
>>
>> eingebe, dann wird mir auch "rpcinfo" angezeigt; erst mit
>>
>> /bin/ls -1 | grep ^rpc\\.
>>
>> wird "rpcinfo" nicht angezeigt. Warum muss ich das "escape"-Symbol
>> noch mal extra "escapen"?
[...]
> $ ls -1 | grep "^rpc\."
> rpc.test
Tats�chlich!
Seltsam ist das trotzdem ...
Danke sch�n!
RTFM. set -x.
Da du nicht quotest frisst schon die shell ein '\' weg. Im ersten Fall
bekommt grep das nie zu sehen. Kurzum: Quoten!
/bin/ls | grep '^rpc\.'
Durch's nicht-quoten muᅵt du "escapen", daᅵ du kirre davon wirst.
-dnh
--
Wieviele Deutsche sind im Kampf gegen den islamistischen Terrorismus schon ge-
storben? Allein die Raucher, die finanzieren das ja alles. Extra Aufschlag auf
die Tabaksteuer [..] Ist doch die perfekte Ironie, oder? Selbstmordattentᅵter
finanzieren den Kampf gegen den Terror. -- Volker Pispers, Bis neulich (2007)
Ist mir noch nie aufgefallen. Und zumindest hier hᅵtte es auch
geholfen:
$ set -x; /bin/ls -1 | grep ^rpc\.
+ /bin/ls -1
+ grep '^rpc.'
Und es hat den groᅵen Vorteil, daᅵ man (fremde) Scripte nicht ᅵndern
muᅵ, sondern diese einfach per 'bash -x' aufrufen kann.
> Ein einfaches echo kann ebenso Erleuchtung bringen.
Meist ja ;)
-dnh
--
"Ein WoKo ist eine Einheit.
Ein WoKo beschreibt die kleinstmoegliche Strecke zwischen zwei
Fettnaepfchen." [Juergen Poehlert in dagᅵ]
> Aber:
>
> $ bash
> bash-4.0$ set -x
> bash-4.0$ echo bla
> + echo bla
> bla
> bash-4.0$ echo "bla"
> + echo bla
> bla
> bash-4.0$ echo 'bla'
> + echo bla
> bla
> bash-4.0$ echo '"bla"'
> + echo '"bla"'
> "bla"
> bash-4.0$ echo "'bla'"
> + echo ''\''bla'\'''
> 'bla'
>
> WTF!?
> Die ksh hier[tm] macht's richtig.
und was ist an obigem falsch? Das ist die einzig sinnvolle Weise, einen
String zu quoten: ersetze alle enthaltenen ' durch '\'' und umschließe
den String mit zwei '.
hier also: aus den ' werden '\'', vorn dran ein ' und hintendran ein '
und schon hat man
' '\'' bla '\'' '
(Leerzeichen zur Verdeutlichung)
bzw. eben ''\''bla'\''' .
Thomas
> bash-4.0$ echo "'bla'"
> + echo ''\''bla'\'''
> 'bla'
>
> WTF!?
> Die ksh hier[tm] macht's richtig.
Eben noch vergessen:
Was gibt denn ksh bei
echo \"\'
aus? Bei bash ist es
+ echo '"'\'''
Thomas