06-11-2010, 21:02
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
למה ביטוי רגולרי לא עובד כמצופה ומחייב הברחה (עם לוכסן)?
פקודה שעשיתי ועובדת:
קוד:
$ sudo find /etc -regex ".*\(rc.*d\|init\.d\).*" | sudo grep "apache"
שימו לב שבמחרוזת שאחרי הדגל regex יש הברחה של התו | ושל הסוגריים העגולות. למה צריך לעשות את זה? למה אני לא יכול פשוט (הבא לא עובד):
קוד:
$ sudo find /etc -regex ".*(rc.*d|init\.d).*" | sudo grep "apache"
גם אם אני מנסה לעשות ככה:
קוד:
$ sudo find /etc -regex ".*\(rc[[:digit:]]\.d\|init\.d\).*" | sudo grep "apache"
אז זה לא עובד בשביל הביטוי בצד השמאלי שבתוך הסוגריים העגולות.
אגב זה עובד:
קוד:
$ sudo find /etc -regex ".*\(rc[0-9]\.d\|init\.d\).*" | sudo grep "apache"
פרטים:
קוד:
$ uname -a
Linux my-desktop 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010 x86_64 GNU/Linux
$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
תודה ...
|