[[email protected] ~]$ grep -h '[A-Z]' dirlist*.txt
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΠΉΠ΄Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π±ΡΠΊΠ²Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
[[email protected] ~]$ grep -h '[-AZ]' dirlist*.txt
Π½Π°ΠΉΠ΄Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π΅ΡΠΈΡ, Π±ΡΠΊΠ²Ρ A ΠΈΠ»ΠΈ Π±ΡΠΊΠ²Ρ Z.
ΠΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² POSIX
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² β ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. ΠΡ Π½Π΅ ΠΈΡΠΏΡΡΡΠ²Π°Π»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ grep, Π½ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π³Π»Π°Π²Π΅ 4, Π³Π΄Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π°ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , Π½ΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
[[email protected] ~]$ ls /usr/sbin/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
/usr/sbin/MAKEFLOPPIES
/usr/sbin/NetworkManagerDispatcher
/usr/sbin/NetworkManager
(Π ΡΠ°Π·Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ Π² Ubuntu.) ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅ΡΠ½ΡΠ»Π° ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ β ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΡ Ρ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ. ΠΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²):
[[email protected] ~]$ ls /usr/sbin/[A-Z]*
/usr/sbin/biosdecode
/usr/sbin/chat
/usr/sbin/chgpasswd
/usr/sbin/chpasswd
/usr/sbin/chroot
/usr/sbin/cleanup-info
/usr/sbin/complain
/usr/sbin/console-kit-daemon
Π ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π°? ΠΠ»Ρ ΡΡΠΎΠΉ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Unix ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½Π° ΡΠ²Π΅Ρ, Π±ΡΠ» ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² β ASCII, ΠΈ ΡΡΠΎΡ ΡΠ°ΠΊΡ Π½Π°ΡΠ΅Π» ΡΠ²ΠΎΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ. Π ASCII ΠΏΠ΅ΡΠ²ΡΠ΅ 32 ΡΠΈΠΌΠ²ΠΎΠ»Π° (Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ 0β31) β ΡΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΡΠ»ΡΡΠΈΡ, Π·Π°Π±ΠΎΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ). Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ 32 (32β63) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π½Π°ΠΊΠΎΠ² ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΈΡΡΡ Ρ Π½ΡΠ»Ρ Π΄ΠΎ Π΄Π΅Π²ΡΡΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ 32 (Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ 64β95) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π±ΡΠΊΠ²Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΠΊΠΎΠ² ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 31 (Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ 96β127) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π±ΡΠΊΠ²Ρ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΈ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΠΊΠΎΠ² ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ. ΠΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π½Π°Π±ΠΎΡ ASCII, ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
ΠΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
Π‘ ΡΠΎΡΡΠΎΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Unix Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π‘Π¨Π Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² Π°Π»ΡΠ°Π²ΠΈΡ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠ³ΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ. Π’Π°Π±Π»ΠΈΡΠ° ASCII Π±ΡΠ»Π° ΡΠ°ΡΡΠΈΡΠ΅Π½Π° Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ 8-Π±ΠΈΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈ Π² Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ 128β255, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡ POSIX Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½Π° (locale), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ Π²ΡΠ±ΠΎΡ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π°. Π£Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ Π½Π°ΡΡΡΠΎΠ΅Π½ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΒΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[[email protected] ~]$ echo $LANG
en_US.UTF-8
ΠΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΡΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ POSIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π° Π½Π΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π½Π°Π±ΠΎΡΠ΅ ASCII. ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅. ΠΠΎΠ³Π΄Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² [A-Z] ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π² Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ Π°Π»ΡΠ°Π²ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΡΠΎΠΌΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° a Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅, β ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡ POSIX ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π». 19.2.
Π’Π°Π±Π»ΠΈΡΠ° 19.2. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ
ΠΠ»Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
[:alnum:]
ΠΠ»ΡΠ°Π²ΠΈΡΠ½ΠΎ-ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ; ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° [A-Za-z0-9] Π² ASCII
[:word:]
Π’ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ [:alnum:], Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ (_)
[:alpha:]
ΠΠ»ΡΠ°Π²ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ; ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° [A-Za-z] Π² ASCII
[:blank:]
ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΡΠΎΠ±Π΅Π»Π° ΠΈ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ
[:cntrl:]
Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ASCII; Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ASCII Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡ 0 Π΄ΠΎ 31 ΠΈ 127
[:digit:]
Π¦ΠΈΡΡΡ ΠΎΡ 0 Π΄ΠΎ 9
[:graph:]
ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ; Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ASCII Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡ 33 Π΄ΠΎ 126
[:lower:]
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°
[:punct:]
ΠΠ½Π°ΠΊΠΈ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ; ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° [-!"#$%&'()*+,./:;<=>[email protected][\\\]_`{|}~] Π² ASCII
[:print:]
ΠΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ; Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° [:graph:] ΠΈ ΠΏΡΠΎΠ±Π΅Π»
[:space:]
ΠΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π΅Π», ΡΠ°Π±ΡΠ»ΡΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ, Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΡΠ»ΡΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ°; ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° [ \t\r\n\v\f] Π² ASCII
[:upper:]
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°
[:xdigit:]
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡ; ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° [0-9A-Fa-f] Π² ASCII
Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΠΏΠΎΡΡΠ΄ΠΊΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π΅ΡΠ½ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌΡ (ASCII) ΠΏΠΎΡΡΠ΄ΠΊΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ LANG. ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ LANG Ρ ΡΠ°Π½ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° ΠΈ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ . ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ·ΡΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux.
Π£Π²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ locale:
[[email protected] ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Unix, ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ LANG Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ POSIX:
[[email protected] ~]$ export LANG=POSIX
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠ³ΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ (ΡΠΎΡΠ½Π΅Π΅, ASCII), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°ΠΉΠ» .bashrc:
export LANG=POSIX
ΠΠΎ Π΄Π°ΠΆΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π΅ Π΄Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ½ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ [A-M].
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΡΠΈΠ»ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
[[email protected] ~]$ ls /usr/sbin/[[:upper:]]*
/usr/sbin/MAKEFLOPPIES
/usr/sbin/NetworkManagerDispatcher
/usr/sbin/NetworkManager
ΠΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠΊΠΎΡΠ΅Π΅ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΡΡΠ΅ΠΉ. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² POSIX ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΈ ΡΠ°ΠΌ ΠΈ ΡΠ°ΠΌ.
ΠΡΠΎΡΡΡΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ POSIX
ΠΠ°ΠΊ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π°, ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΡΠ°Π½ΠΈΡΡ Ρ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ°ΠΌΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π½Π°, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ POSIX ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π΄Π²Π° Π²ΠΈΠ΄Π°: ΠΏΡΠΎΡΡΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (Basic Regular Expressions, BRE) ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (Extended Regular Expressions, ERE). ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π²ΡΠΈΠ΅ΡΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΠΈ POSIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΌΠΈ BRE. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° grep β ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ .
Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ BRE ΠΈ ERE? Π Π°Π·Π»ΠΈΡΠΈΡ ΠΊΠ°ΡΠ°ΡΡΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ΅ BRE ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»Ρ: ^ $ . [ ] *. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΡΠ°ΡΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ. Π ERE Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ) Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ: ( ) { } ? + |.