Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 60

Автор Шоттс Уильям

[[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 Π²ΠΎ мноТСство мСтасимволов (с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠΌ функциями) Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ: ( ) { } ? + |.