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

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

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

gdm:x:106:114:Gnome Display Manager:/var/lib/gdm:/bin/false

hplip:x:104:7:HPLIP system user,,,:/var/run/hplip:/bin/false

klog:x:103:104::/home/klog:/bin/false

messagebus:x:108:119::/var/run/dbus:/bin/false

polkituser:x:110:122:PolicyKit,,,:/var/run/PolicyKit:/bin/false

pulse:x:107:116:PulseAudio daemon,,,:/var/run/pulse:/bin/false

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»Π΅ΠΉ, ΠΌΡ‹ смогли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сортировку ΠΏΠΎ ΡΠ΅Π΄ΡŒΠΌΠΎΠΌΡƒ полю.

uniq β€” выявлСниС ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ строк

Π’ сравнСнии с sort ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° uniq Π±ΠΎΠ»Π΅Π΅ лСгковСсна. Она Ρ€Π΅ΡˆΠ°Π΅Ρ‚, казалось Π±Ρ‹, Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Когда Π΅ΠΉ пСрСдаСтся сортированный Ρ„Π°ΠΉΠ» (Π² Ρ‚ΠΎΠΌ числС ΠΈ стандартный Π²Π²ΠΎΠ΄), ΠΎΠ½Π° удаляСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ строки ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² стандартный Π²Ρ‹Π²ΠΎΠ΄. Она часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сочСтании с sort для удалСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ строк.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ uniq β€” инструмСнт, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ для Unix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с sort, GNU-вСрсия sort ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -u, ΡƒΠ΄Π°Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ строки ΠΈΠ· сортированных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим тСкстовый Ρ„Π°ΠΉΠ» для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… экспСримСнтов:

[[email protected] ~]$ cat > foo.txt

a

b

c

a

b

c

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ввСсти CTRL+D, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ uniq ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ тСкстовому Ρ„Π°ΠΉΠ»Ρƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°; ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ записи Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ исчСзли:

[[email protected] ~]$ uniq foo.txt

a

b

c

a

b

c

Π§Ρ‚ΠΎΠ±Ρ‹ uniq Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, исходныС Π΄Π°Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

[[email protected] ~]$ sort foo.txt | uniq

a

b

c

Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ uniq удаляСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ записи, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

uniq ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ· Π½ΠΈΡ… пСрСчислСны Π² Ρ‚Π°Π±Π». 20.2.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -c ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ uniq для опрСдСлСния числа ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ строк Π² исходном тСкстовом Ρ„Π°ΠΉΠ»Π΅:

[[email protected] ~]$ sort foo.txt | uniq -c

Β Β Β Β Β Β 2 a

Β Β Β Β Β Β 2 b

Β Β Β Β Β Β 2 c

Π’Π°Π±Π»ΠΈΡ†Π° 20.2. Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ uniq

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

ОписаниС

-c

ВывСсти список ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ строк, прСдваряя ΠΈΡ… числом Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²

-d

ВывСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ, Π½Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ строки

-f n

ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ n Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС. Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° поля производится ΠΏΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌ символам, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ sort; ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ sort, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° uniq Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для настройки Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ раздСлитСля ΠΏΠΎΠ»Π΅ΠΉ

-i

Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ строки Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра символов

-s n

ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ n Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС

-u

ВывСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ строки. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

НарСзка ΠΈ пСрСтасовка тСкста

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ обсудим Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для выдСлСния ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ тСкста ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами.

cut β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· всСх строк Π² Ρ„Π°ΠΉΠ»Π°Ρ…

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° cut ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для извлСчСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² тСкста ΠΈΠ· строк ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΡ… Π² стандартный Π²Ρ‹Π²ΠΎΠ΄. Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ со стандартного Π²Π²ΠΎΠ΄Π°.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² строк, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΈ для этой Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, пСрСчислСнныС Π² Ρ‚Π°Π±Π». 20.3.

Π’Π°Π±Π»ΠΈΡ†Π° 20.3. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cut для Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ²

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

ОписаниС

-c список_символов

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ строки, опрСдСляСмый списком_символов. Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько числовых Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми

-f список_полСй

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ· строки, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ список_символов. Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми

-d символ_Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

Π’ присутствии ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -f Π² качСствС раздСлитСля ΠΏΠΎΠ»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ_Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΎΠ΄Π½ΠΈΠΌ символом табуляции

--complement

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ строку тСкста Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², опрСдСляСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -c ΠΈ/ΠΈΠ»ΠΈ -f

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° cut Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ особСнной Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ. Она Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для извлСчСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· тСкста, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π° Π½Π΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ вСрнСмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ distros.txt ΠΈ посмотрим, достаточно Π»ΠΈ ΠΎΠ½ Β«Ρ…ΠΎΡ€ΠΎΡˆΒ» для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ cut. Если Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ cat с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Β­Ρ€ΠΎΠΌ -A, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π»ΠΈ Ρ„Π°ΠΉΠ» Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ использования символа табуляции Π² качСствС раздСлитСля ΠΏΠΎΠ»Π΅ΠΉ.

[[email protected] ~]$ cat -A distros.txt

SUSE^I10.2^I12/07/2006$

Fedora^I10^I11/25/2008$

SUSE^I11.0^I06/19/2008$

Ubuntu^I8.04^I04/24/2008$

Fedora^I8^I11/08/2007$

SUSE^I10.3^I10/04/2007$

Ubuntu^I6.10^I10/26/2006$

Fedora^I7^I05/31/2007$

Ubuntu^I7.10^I10/18/2007$

Ubuntu^I7.04^I04/19/2007$

SUSE^I10.1^I05/11/2006$

Fedora^I6^I10/24/2006$

Fedora^I9^I05/13/2008$

Ubuntu^I6.06^I06/01/2006$

Ubuntu^I8.10^I10/30/2008$

Fedora^I5^I03/20/2006$

ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ всС Π² порядкС: ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ поля Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ СдинствСнными символами табуляции. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вмСсто ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ символы табуляции, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -f для извлСчСния поля:

[[email protected] ~]$ cut -f 3 distros.txt

12/07/2006

11/25/2008

06/19/2008

04/24/2008

11/08/2007

10/04/2007

10/26/2006

05/31/2007

10/18/2007

04/19/2007

05/11/2006

10/24/2006

05/13/2008

06/01/2006

10/30/2008

03/20/2006

Π’Π°ΠΊ ΠΊΠ°ΠΊ поля Π² Ρ„Π°ΠΉΠ»Π΅ distros.txt Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ символами табуляции, ΠΈΡ… ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cut ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ поля, Π° Π½Π΅ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΡ‹ символов. Когда поля Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символами табуляции, маловСроятно, Ρ‡Ρ‚ΠΎ строки Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ число символов, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ символов Π² строках становится слоТной ΠΈΠ»ΠΈ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ смогли ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ поля с Π΄Π°Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊ нашСй ΡƒΠ΄Π°Ρ‡Π΅, всС ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, поэтому Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ выполняСтся ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏ символов, для Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π³ΠΎΠ΄ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки:

[[email protected] ~]$ cut -f 3 distros.txt | cut -c 7-10

2006

2008

2008

2008

2007

2007

2006

2007

2007

2007

2006

2006

2008

2006

2008

2006

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² cut Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ списку, ΠΌΡ‹ смогли ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ символы Π² позициях с 7-ΠΉ ΠΏΠΎ 10-ю, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π³ΠΎΠ΄Ρƒ Π² ΠΏΠΎΠ»Π΅ с Π΄Π°Ρ‚ΠΎΠΉ. Π€ΠΎΡ€ΠΌΠ° записи 7-10 β€” это ΠΏΡ€ΠΈΠΌΠ΅Ρ€ опрСдСлСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ПолноС описаниС особСнностСй опрСдСлСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² находится Π½Π° страницС справочного руководства (man) для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cut.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с полями ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ символа табуляции. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° /etc/passwd:

[[email protected] ~]$ cut -d ':' -f 1 /etc/passwd | head

root

daemon

bin

sys

sync

games

man

lp

mail

news

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -d ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ»ΡŒ раздСлитСля ΠΏΠΎΠ»Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ символ двоСточия.

Π·Π°ΠΌΠ΅Π½Π° символов табуляции

Наш Ρ„Π°ΠΉΠ» distros.txt идСально ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ для извлСчСния ΠΏΠΎΠ»Π΅ΠΉ с использованиСм cut. Но Ρ‡Ρ‚ΠΎ, Ссли Π½Π°ΠΌ понадобится ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», вырСзая Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ символам, Π° Π½Π΅ ΠΏΠΎ полям? Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символы табуляции Π² Ρ„Π°ΠΉΠ»Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ числом ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π² GNU-ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ coreutils имССтся инструмСнт для этого β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° expand. Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ со стандартного Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ тСкст Π² стандартный Π²Ρ‹Π²ΠΎΠ΄.