Π’Π°Π±Π»ΠΈΡΠ° 4.5: ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
awk
ΠΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΠ°ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠ°Ρ ΠΈΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΡΠΈΠΏΠ°
Susie 400
JohnΒ 100
MaryΒ 200
MaryΒ 300
JohnΒ 100
Susie 100
MaryΒ 100
ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΌΠΌΠ°ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ:
JohnΒ 200
MaryΒ 600
Susie 500
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
awk
ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΠ·ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ β Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². Π₯ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ΅Π±Π΅ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, Π²
awk
Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠΎΡΡΠΎΠΌΡ
Β Β Β {sum[$1] += $2}
END {for (name in sum) print name sum [name]}
Π·Π°Π΄Π°Π΅Ρ Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° n ΠΏΠ΅ΡΠ°ΡΠΈ ΡΡΠΌΠΌ Π΄Π»Ρ ΠΏΠ°Ρ ΠΈΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ
ΠΏΠ°Ρ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠΌΡ (
$1
) ΡΠ»ΡΠΆΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
sum
; Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠΈΠΊΠ»Π°
for
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
sum
ΠΈ ΠΈΡ
ΠΏΠ΅ΡΠ°ΡΠΈ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΈΠΊΠ»Π°
for
ΡΠ°ΠΊΠΎΠ²:
for (ΠΏΠ΅ΡΠ΅ΠΌ in ΠΌΠ°ΡΡΠΈΠ²)
Β ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
Π₯ΠΎΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π²Π°ΠΌ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ, ΠΊΠ°ΠΊ ΡΠΈΠΊΠ»
for
ΡΠ·ΡΠΊΠ°
shell
, ΠΎΠ½ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ. Π¦ΠΈΠΊΠ» ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π° Π½Π΅ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "ΠΏΠ΅ΡΠ΅ΠΌ" ΡΠ°Π²Π½ΡΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΈΡ
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅
sort
, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ»ΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
$ awk '...' | sort +1nr
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Ρ
ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π» ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ, ΠΈ ΡΡΠΎΠ±Ρ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Π»ΠΎ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΡΠ΅Π΄Π½ΠΈΡ
ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ²) ΠΎΡ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ
, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΠ°ΡΡΠΎΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅:
$ cat wordfreq
awk ' { for (i = 1; i <= NF; i++) num[$i]++ }
ENDΒ Β {for (word in num) print word, num[word] }
' $*
$ wordfreq ch4.* | sort +1 -nr | sed 20q | 4
the 372 .CW 345 ofΒ 220 isΒ Β 185
toΒ 175 aΒ Β 167 inΒ 109 andΒ 100
.PIΒ 94 .P2Β 94 .PPΒ 90 $Β Β Β Β 87
awkΒ 87 sedΒ 83 that 76 forΒ Β 75
TheΒ 63 areΒ 61 line 55 print 52
$
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠΈΠΊΠ»Π΅
for
Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΈΠ· Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²
num
, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ. (ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅
$i
, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅ Π²
awk
i-Π΅ ΠΏΠΎΠ»Π΅ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°
shell
.) ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠΈΠΊΠ»Π΅
for
ΠΏΠ΅ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈ ΡΠ°ΡΡΠΎΡΠ° ΠΈΡ
ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.9
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
wordfreq
ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ°
.CW
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ»ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ. ΠΠ°ΠΊ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΈΡ
Π½Π΅Π½Π°ΡΡΠΎΡΡΠΈΡ
ΡΠ»ΠΎΠ²? ΠΠ°ΠΊ Π±Ρ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
tr
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
wordfreq
ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅? Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
wordfreq
, ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΈΠ· ΡΠ°Π·Π΄. 4.2 ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
sed 's/[β][β]*/\
/q' $* | sort | uniq -c | sort -nr
Π‘ΡΡΠΎΠΊΠΈ
Π₯ΠΎΡΡ ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈ
sed
ΠΈ
awk
, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π·Π°Π΄Π°Ρ ΡΠΈΠΏΠ° Π²ΡΠ±ΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ, ΡΠΎΠ»ΡΠΊΠΎ
awk
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 80 ΠΏΠΎΠ·ΠΈΡΠΈΠΉ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠ°Ρ 80 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ 80-Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°; Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ
\
ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΡΠ°ΡΠΎΠΊ ΡΡΡΠΎΠΊΠΈ. Π₯Π²ΠΎΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ ΠΊ Π΅Π΅ ΠΏΡΠ°Π²ΠΎΠΌΡ ΠΊΠΎΠ½ΡΡ, Π° Π½Π΅ ΠΊ Π»Π΅Π²ΠΎΠΌΡ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠ΅ΡΠ°ΡΠΈ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
fold
. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΡΠΎΠΊΠΈ ΠΈΠ· 20, Π° Π½Π΅ ΠΈΠ· 80 ΠΏΠΎΠ·ΠΈΡΠΈΠΉ:
$ cat ΡΠ΅ΡΡ
ΠΠΎΡΠΎΡΠΊΠ°Ρ ΡΡΡΠΎΠΊΠ°
Π‘ΡΡΠΎΠΊΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½Π½Π΅Π΅
ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π΅ΡΠ΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
$ fold ΡΠ΅ΡΡ
ΠΠΎΡΠΎΡΠΊΠ°Ρ ΡΡΡΠΎΠΊΠ°
Π‘ΡΡΠΎΠΊΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½Π½Π΅Π΅
ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π΅ΡΠ΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅,
Β ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
$
ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ Π² ΡΠ΅Π΄ΡΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ, Ρ
ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°
pr
Π² System V Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈ ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
fold
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ
sed
, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ Π² ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ ΡΡΠΎΠ±Ρ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠΈΡΠ»Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π²
awk
ΠΏΡΠΈΠ½ΡΠ» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ (ΡΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΎ Π΄Π»Ρ ΡΠ·ΡΠΊΠΎΠ²ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ), Π½ΠΎ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ±ΠΈΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ:
# fold: fold long lines
sed 's/\(->/ /g' $* |Β Β Β Β Β # convert tabs to spaces
awk '
Β BEGIN {
Β N = 80Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β # folds at column 80