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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка Linux. ПолноС руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 61

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

Если ввСсти 1, aspell Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ слово jimped словом jumped ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΒ­Π΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ слову, laxy. Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π°ΠΌΠ΅Π½Ρ‹ lazy, aspell Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ подстановку ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ошибок Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ„Ρ€Π°Π·Π΅ большС Π½Π΅Ρ‚). ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ aspell Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, заглянСм Π² Ρ„Π°ΠΉΠ» ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС ошибки исправлСны:

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

The quick brown fox jumped over the lazy dog.

Если Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ aspell Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° --dont-backup, ΠΎΠ½Π° создаст Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Ρ„Π°ΠΉΠ»Π° с исходным тСкстом, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .bak.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ похвастаСмся ΡƒΠΌΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ sed ΠΈ Π²Π΅Ρ€Π½Π΅ΠΌ наши ошибки Π½Π° мСсто, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ экспСримСнты с нашим Ρ„Π°ΠΉΠ»ΠΎΠΌ:

[ [email protected] ~]$ sed -i 's/lazy/laxy/; s/jumped/jimped/' foo.txt

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -i сообщаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ sed, Ρ‡Ρ‚ΠΎ трСбуСтся ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Β«Π½Π° мСстС», Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ измСнСния Π½ΡƒΠΆΠ½ΠΎ произвСсти Π² самом Ρ„Π°ΠΉΠ»Π΅, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ»Π°Ρ‚ΡŒ ΠΈΡ… Π² стандартный Π²Ρ‹Π²ΠΎΠ΄. Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ рСдактирования, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ посмотрим, ΠΊΠ°ΠΊ aspell справляСтся с тСкстовыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ vim (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ смСлыС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ sed), Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ„Π°ΠΉΠ» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ HTML:

<html>

<head>

<title>Mispelled HTML file</title>

</head>

<body>

The quick brown fox jimped over the laxy dog.

</body>

</html>

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΌΡ‹ столк­нСмся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π’Ρ‹Π·Π²Π°Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

[ [email protected] ~]$ aspell check foo.txt

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

<html>

<head>

<title>Mispelled HTML file</title>

</head>

<body>

The quick brown fox jimped over the laxy dog.

</body>

</html>

______________________________________________________________

1) HTML 4) Hamel

2) ht ml 5) Hamil

3) ht-ml 6) hotel

i) Ignore I) Ignore all

r) Replace R) Replace all

a) Add l) Add Lower

b) Abort x) Exit

______________________________________________________________

?

aspell посчитала, Ρ‡Ρ‚ΠΎ HTML-Ρ‚Π΅Π³ΠΈ записаны с ошибками. Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -H (HTML) Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:

[ [email protected] ~]$ aspell -H check foo.txt

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

<html>

<head>

<title>Mispelled HTML file</title>

</head>

<body>

The quick brown fox jimped over the laxy dog.

</body>

</html>

______________________________________________________________

1) Mi spelled 6) Misapplied

2) Mi-spelled 7) Miscalled

3) Misspelled 8) Respelled

4) Dispelled 9) Misspell

5) Spelled 0) Misled

i) Ignore I) Ignore all

r) Replace R) Replace all

a) Add l) Add Lower

b) Abort x) Exit

______________________________________________________________

?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π΅Π³ΠΈ HTML ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»Π°, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ содСрТимоС HTML-Ρ‚Π΅Π³ΠΎΠ² игнорируСтся ΠΈ Π½Π΅ провСряСтся, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ составляСт содСрТимоС Ρ‚Π΅Π³ΠΎΠ² ALT (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² alt), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

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

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ aspell ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ адрСса URL ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² тСкстС. Π­Ρ‚Ρƒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Π³ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. Π—Π° подробностями ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ страницС справочного руководства (man) для aspell.

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅


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

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅


БущСствуСт нСсколько интСрСсных ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… split (Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹), csplit (Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° контСкст) ΠΈ sdiff (Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ называСтся, Β«Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊΒ»).

12 Английский Π°Π½Π°Π»ΠΎΠ³ Ρ„Ρ€Π°Π·Ρ‹: «БъСшь ΠΆΠ΅ Π΅Ρ‰Ρ‘ этих мягких французских Π±ΡƒΠ»ΠΎΠΊ, Π΄Π° Π²Ρ‹ΠΏΠ΅ΠΉ Ρ‡Π°ΡŽΒ», содСрТащСй всС Π±ΡƒΠΊΠ²Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°. Π’ этой Π³Π»Π°Π²Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ пСрСписывания всСх авторских ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΉ. β€” ΠŸΡ€ΠΈΠΌΠ΅Ρ‡. Ρ€Π΅Π΄.

21. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°


Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ знакомство с инструмСнтами, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ тСксту, ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для форматирования Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста, Π° Π½Π΅ Π΅Π³ΠΎ измСнСния. Π­Ρ‚ΠΈ инструмСнты часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ тСкста ΠΊ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

β€’ nl β€” Π½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚ строки.

β€’ fold β€” выполняСт пСрСнос строк, ограничивая ΠΈΡ… ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ.

β€’ fmt β€” выполняСт простоС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста.

β€’ pr β€” Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ тСкст для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ.

β€’ printf β€” Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅.

β€’ groff β€” систСма форматирования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ простого форматирования


Для Π½Π°Ρ‡Π°Π»Π° рассмотрим нСсколько инструмСнтов простого форматирования. Π’ основном это узкоспСциализированныС ΠΈ довольно бСсхитростныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ простых Π·Π°Π΄Π°Ρ‡ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°Ρ… ΠΈ сцСнариях.

nl β€” нумСрация строк


ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° nl β€” ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ простой Π·Π°Π΄Π°Ρ‡ΠΈ: ΠΎΠ½Π° выполняСт Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ строк. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС использования nl Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cat -n:

[ [email protected] ~]$ nl distros.txt | head

1 SUSE 10.2 12/07/2006

2 Fedora 10 11/25/2008

3 SUSE 11.0 06/19/2008

4 Ubuntu 8.04 04/24/2008

5 Fedora 8 11/08/2007

6 SUSE 10.3 10/04/2007

7 Ubuntu 6.10 10/26/2006

8 Fedora 7 05/31/2007

9 Ubuntu 7.10 10/18/2007

10 Ubuntu 7.04 04/19/2007

Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ cat, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° nl ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ со стандартного Π²Π²ΠΎΠ΄Π°. Однако nl ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, обСспСчивая Π±ΠΎΠ»Π΅Π΅ слоТныС способы Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

nl ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ идСю логичСских страниц. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС Π·Π°Π½ΠΎΠ²ΠΎ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΈ ΠΏΡ€ΠΎΡ‚ΡΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ². Π›ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ страницу ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ‚Π΅Π»ΠΎ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ». Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ нумСрация ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π½Π°Ρ‡Π°Π»Π° ΠΈ/ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ nl ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ тСкста. Π Π°Π·Π΄Π΅Π»Ρ‹ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странной Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π». 21.1.

Π’Π°Π±Π»ΠΈΡ†Π° 21.1. Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° nl

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

\:\:\:

Начало Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° логичСской страницы

\:\:

Начало Ρ‚Π΅Π»Π° логичСской страницы

\:

Начало Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Π° логичСской страницы


ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠ· прСдставлСнных Π² Ρ‚Π°Π±Π». 21.1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС. ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ элСмСнта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° nl ΡƒΠ΄Π°Π»ΠΈΡ‚ Π΅Π³ΠΎ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° тСкста.

Π’ Ρ‚Π°Π±Π». 21.2 пСрСчислСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ nl.

Π’Π°Π±Π»ΠΈΡ†Π° 21.2. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ nl

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

-b ΡΡ‚ΠΈΠ»ΡŒ

Π‘Ρ‚ΠΈΠ»ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅Π»Π°, Π³Π΄Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

a β€” Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ всС строки;

t β€” Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСпустыС строки. Π­Ρ‚ΠΎΡ‚ ΡΡ‚ΠΈΠ»ΡŒ примСняСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;

n β€” Π½Π΅ Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ;

рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ простому рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ

-f ΡΡ‚ΠΈΠ»ΡŒ

Π‘Ρ‚ΠΈΠ»ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ n (Π½Π΅Ρ‚ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ)

-h ΡΡ‚ΠΈΠ»ΡŒ

Π‘Ρ‚ΠΈΠ»ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ n (Π½Π΅Ρ‚ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ)

-i число

Π¨Π°Π³ приращСния Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π½Π° страницС. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1

-n Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ², Π³Π΄Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

ln β€” с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ, Π±Π΅Π· Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… Π½ΡƒΠ»Π΅ΠΉ;

rn β€” с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ, Π±Π΅Π· Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… Π½ΡƒΠ»Π΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;

rz β€” с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ, с Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ нулями

-p

НС ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ логичСской страницы

-s строка

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ строку Π² ΠΊΠΎΠ½Π΅Ρ† ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ тСкста строки. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ символ табуляции