Π‘ΠΏΠ΅ΠΊΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ (Ρ Π½Π΅ΡΠ²Π½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ) ΠΊ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ (Ρ ΡΠ²Π½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ). Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ fetchmail(1) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ ΡΠ»Π°Π±ΡΠΉ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ Ρ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. Π―Π·ΡΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠΎΠ² troff ΠΈ PostScript ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Π³ΡΠ°Π½ΠΈΡΠ°Ρ Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠ½ΠΈ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ²Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Π’ΡΡΡΠΈΠ½Π³Π°, Ρ.Π΅. ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΈΠΊΠ»Ρ (ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΡ)[78] Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½ΠΈΡ , Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ°ΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Π’ΡΡΡΠΈΠ½Π³Π°. Π Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ.
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ bc(1) ΠΈ dc(1), ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π² Π³Π»Π°Π²Π΅ 7, ΡΠ²Π»ΡΡΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Π’ΡΡΡΠΈΠ½Π³Π°.
Π’Π°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΊΠ°ΠΊ Emacs Lisp ΠΈ JavaScript, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π―Π·ΡΠΊΠΈ Emacs Lisp ΠΈ JavaScript ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ . ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π².
ΠΠ±Π»Π°ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΉ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ. ΠΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΡΡΠ΅Π΄Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π‘ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΉ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π²ΠΈΡΠ°Ρ ΠΎΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ . Shell ΠΈ Tcl ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, a Perl, Python ΠΈ Java β Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ. ΠΠ°Π½Π½ΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² Π³Π»Π°Π²Π΅ 14.
8.2. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠ²
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠ² Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ Π΄Π²Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈΡΡ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΅ΡΡΡ. ΠΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠ°Π·Π²ΠΈΡΡ ΠΎΠ±Π° Π°ΡΠΏΠ΅ΠΊΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠΎΠ³ΠΎ ΠΌΡΡΠ»Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Π±Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
8.2.1. Π£ΡΠ΅Π±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: sng
Π Π³Π»Π°Π²Π΅ 6 ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΠ° sng(1), ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡΠ°Ρ PNG-ΡΠ°ΠΉΠ» Π² ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠΎΡΠΌΡ. Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ SNG Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠΌ. ΠΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ Π½Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Ρ Π½ΠΈΠΌΠΈ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ SNG Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½Ρ ΠΎΠ±ΡΡΡ Π²Π°ΠΆΠ½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΡ Ρ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ PNG, β ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ. Π‘ΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠΈΡ "ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ " Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. Π ΡΠ»ΡΡΠ°Π΅ SNG Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΊΠ°ΠΊ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
8.2.2. Π£ΡΠ΅Π±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Unix ΠΈ ΡΠ·ΡΠΊΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (regular expression, ΠΈΠ»ΠΈ regexp Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ). ΠΠ΄Π΅ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². Π§Π°ΡΡΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΈ. Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ, ΡΡΠΎ ΠΈΡ Π΅Π΄Π²Π° Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠΎ, ΡΡΠΎ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Π°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ (ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ°.
Π Π΄Π°Π½Π½ΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ POSIX-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Π° ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² ΠΊΠ½ΠΈΠ³Π΅ "Mastering Regular Expressions" [22].
Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, Π»ΠΈΠ±ΠΎ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° grep(1), ΡΠΈΠ»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 8.1.
Π’Π°Π±Π»ΠΈΡΠ° 8.1. ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° "x.y" x, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Ρ "x\.y" Ρ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΡΠΊΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Ρ "xz?y" Ρ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° z Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Ρ, Ρ.Π΅. "xy" ΠΈΠ»ΠΈ "xzy", Π½ΠΎ Π½Π΅ "xz" ΠΈΠ»ΠΈ "xdy" "xz*y" Ρ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ y, Ρ.Π΅. "xy" ΠΈΠ»ΠΈ "xzy" ΠΈΠ»ΠΈ "xzzzy", Π½ΠΎ Π½Π΅ "xz" ΠΈΠ»ΠΈ "xdy" "xz+y" x, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»Π° z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Ρ, Ρ.Π΅. "xzy" ΠΈΠ»ΠΈ "xzzy", Π½ΠΎ Π½Π΅ "xy", "xz" ΠΈΠ»ΠΈ "xdy" "s[xyz]t" s, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ , Ρ ΠΈΠ»ΠΈ z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ t, Ρ.Π΅. "sxt", "syt" ΠΈΠ»ΠΈ "szt", Π½ΠΎ Π½Π΅ "st" ΠΈΠ»ΠΈ "sat" "a[x0-9]b" Π°, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈΠ±ΠΎ Ρ , Π»ΠΈΠ±ΠΎ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0-9, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ b, ΡΠΎ Π΅ΡΡΡ, "axb", "a0b" ΠΈΠ»ΠΈ "Π°4b", Π½ΠΎ Π½Π΅ "ab" ΠΈΠ»ΠΈ "aab" "s[^xyz] t" s, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΡΠΎΠΌΠ΅ Ρ , Ρ ΠΈΠ»ΠΈ z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ t, Ρ.Π΅. "sdt" ΠΈΠ»ΠΈ "set", Π½ΠΎ Π½Π΅ "sxt", "syt" ΠΈΠ»ΠΈ "szt" "s[^x0-9]t" s, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΡΠΎΠΌΠ΅ x ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0-9, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ t, Ρ.Π΅. "slt" ΠΈΠ»ΠΈ "smt", Π½ΠΎ Π½Π΅ "sxt", "s0t" ΠΈΠ»ΠΈ "s4t" "^xβ x Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ, Ρ.Π΅. "xzy" ΠΈΠ»ΠΈ "xzzy", Π½ΠΎ Π½Π΅ "yzy" ΠΈΠ»ΠΈ "ΡΡ Ρ" "x$" Ρ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Ρ.Π΅. "yzx" ΠΈΠ»ΠΈ "yx", Π½ΠΎ Π½Π΅ "yxz" ΠΈΠ»ΠΈ "zxy"Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
1. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-ΠΌΠ°ΡΠΊΠΈ. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²-ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² (wildcard), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΠΉΡΡ Π² ΡΠ°Π½Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ Unix Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ². Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 3 ΡΠΈΠΌΠ²ΠΎΠ»Π°-ΡΠ°Π±Π»ΠΎΠ½Π°: * β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΠΊΠ°ΠΊ .* Π² Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ); ? β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΠΊΠ°ΠΊ . Π² Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ); [...] β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΊΠ°ΠΊ Π² Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ . Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ (csh, bash, zsh) ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ°Π±Π»ΠΎΠ½ {} Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ x{a,b}c ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ°ΠΌ xac ΠΈΠ»ΠΈ xbc, Π½ΠΎ Π½Π΅ xc. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-ΠΌΠ°ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
2. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ, ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅ grep(1) Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ed(1) ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ sed(1). ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ ΡΡΠ°ΡΠΎΠΉ ΡΠΊΠΎΠ»Ρ Unix ΡΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, ΠΈΠ»ΠΈ "ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ", ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ²ΡΠΈΠ΅ΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΠΊΠ»ΠΎΠ½Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½Π° Π½ΠΈΠΆΠ΅.
3. Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΠΈΡΡ, ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ grep, egrep(1) Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Lex ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Emacs Π²Π΅ΡΡΠΌΠ° Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ egrep-ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ.