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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° языкС сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 41

Автор МСндСль ΠšΡƒΠΏΠ΅Ρ€

# ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ "*" Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π°, Π½Π΅ содСрТащиС "/".

do n=`echo "$filename/" | tr '[:upper:]' '[:lower:]'`

# ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ классы POSIX.

# Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ слэш Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки

# Π½Π΅ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ ΠΏΡ€ΠΈ подстановкС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

# ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

n=${n%/} # Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ слэша, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅.

[[ $filename == $n ]] || mv "$filename" "$n"

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° -- Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ измСнилось имя Ρ„Π°ΠΉΠ»Π°.

done


exit 0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-16. du: ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкстового Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° DOS Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ UNIX.

#!/bin/bash

# du.sh: ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкстового Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° DOS Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ UNIX.


E_WRONGARGS=65


if [ -z "$1" ]

then

echo "ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ использования: `basename $0` filename-to-convert"

exit $E_WRONGARGS

fi


NEWFILENAME=$1.unx


CR='\015' # Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ.

# Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ… DOS Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ символов CR-LF.


tr -d $CR < $1 > $NEWFILENAME

# Π£Π΄Π°Π»ΠΈΡ‚ΡŒ символы CR ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ».


echo "Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ»: \"$1\"."

echo "ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: \"$NEWFILENAME\"."


exit 0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-17. rot13: БвСрхслабоС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ rot13.

#!/bin/bash

# rot13.sh: ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ rot13,

# ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ способСн "Ρ€Π°ΡΠΊΠΎΠ»ΠΎΡ‚ΡŒ" Π΄Π°ΠΆΠ΅ 3-Ρ… Π»Π΅Ρ‚Π½ΠΈΠΉ Ρ€Π΅Π±Π΅Π½ΠΎΠΊ.


# ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ использования: ./rot13.sh filename

# ΠΈΠ»ΠΈ ./rot13.sh <filename

# ΠΈΠ»ΠΈ ./rot13.sh ΠΈ ввСсти тСкст с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (stdin)


cat " [email protected]" | tr 'a-zA-Z' 'n-za-mN-ZA-M' # "a" замСняСтся Π½Π° "n", "b" Π½Π° "o", ΠΈ Ρ‚.Π΄.

# ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ 'cat " [email protected]"'

#+ позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ со stdin, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.


exit 0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-18. Π‘ΠΎΠ»Π΅Π΅ "слоТный" ΡˆΠΈΡ„Ρ€

#!/bin/bash

# crypto-quote.sh: ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅


# Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ограничиваСтся простой Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΈΡ… Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹Ρ… символов Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

# Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΡˆΠΈΡ„Ρ€Ρ‹-Π·Π°Π³Π°Π΄ΠΊΠΈ


key=ETAOINSHRDLUBCFGJMQPVWZYXK

# Π—Π΄Π΅ΡΡŒ, "key" -- Π½ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ "ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ" Π°Π»Ρ„Π°Π²ΠΈΡ‚.

# ИзмСнСниС ΠΊΠ»ΡŽΡ‡Π° "key" ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ измСнСнию ΡˆΠΈΡ„Ρ€Π°.


# ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ 'cat " [email protected]"' позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ со stdin, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.

# Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ stdin, Ρ‚ΠΎ Π²Π²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ Control-D.

# Π˜Π½Π°Ρ‡Π΅, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ имя Ρ„Π°ΠΉΠ»Π°.


cat " [email protected]" | tr "a-z" "A-Z" | tr "A-Z" "$key"

# | Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр | ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅

# Π’Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ позволяСт ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ символы Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС, Ρ‚Π°ΠΊ ΠΈ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ.

# НСалфавитныС символы ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.


# ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ тСкст, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

# "Nothing so needs reforming as other people's habits."

# --Mark Twain

#

# Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚:

# "CFPHRCS QF CIIOQ MINFMBRCS EQ FPHIM GIFGUI'Q HETRPQ."

# --BEML PZERC


# Для Π΄Π΅ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ:

# cat " [email protected]" | tr "$key" "A-Z"


# Π­Ρ‚ΠΎΡ‚ Π½Π΅Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΉ ΡˆΠΈΡ„Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ "Π²Π·Π»ΠΎΠΌΠ°Π½" 12-Ρ‚ΠΈ Π»Π΅Ρ‚Π½ΠΈΠΌ Ρ€Π΅Π±Π΅Π½ΠΊΠΎΠΌ

#+ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ° ΠΈ Π±ΡƒΠΌΠ°Π³ΠΈ.


exit 0

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии tr

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° tr ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅, историчСски слоТившиСся, вСрсии. BSD-вСрсия Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки (tr a-z A-Z), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ SysV-вСрсия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… (tr '[a-z]' '[A-Z]'). GNU-вСрсия ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ tr Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ BSD, Π½ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ символов ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки.

fold

Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ тСкст ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅, разрывая, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, слова. ΠžΡΠΎΠ±Ρ‹ΠΉ интСрСс прСдставляСт ΠΊΠ»ΡŽΡ‡ -s, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ пСрСнос строк ΠΏΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌ, ΡΡ‚Π°Ρ€Π°ΡΡΡŒ Π½Π΅ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ слова. (см. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-19 ΠΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ A-2).

fmt

ΠžΡ‡Π΅Π½ΡŒ простая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° форматирования тСкста, Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°Ρ… для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ "пСрСнос" Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк тСкста.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-19. ΠžΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список Ρ„Π°ΠΉΠ»ΠΎΠ².

#!/bin/bash


WIDTH=40 # 40 символов Π² строкС.


b=`ls /usr/local/bin` # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ„Π°ΠΉΠ»ΠΎΠ²...


echo $b | fmt -w $WIDTH


# Π’ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

# echo $b | fold - -s -w $WIDTH

exit 0

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-4.

ΠžΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ fmt, являСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° par (Π°Π²Ρ‚ΠΎΡ€ Kamil Toman), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π½Π° http://www.cs.berkeley.edu/~amc/Par/.

col

Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° с ΠΎΠ±ΠΌΠ°Π½Ρ‡ΠΈΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ удаляСт ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° символы ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π±ΡƒΠΌΠ°Π³ΠΈ (ΠΊΠΎΠ΄ ESC 7). Она Ρ‚Π°ΠΊ ΠΆΠ΅ пытаСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π° табуляции. Основная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ col -- Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ groff ΠΈ tbl.

column

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ столбцам. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ тСкст, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ список, Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅, Π±ΠΎΠ»Π΅Π΅ "ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅", прСдставлСниС, вставляя символы табуляции ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-20. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ форматирования списка Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

#!/bin/bash

# Π—Π° основу сцСнария взят ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "man column".


(printf "PERMISSIONS LINKS OWNER GROUP SIZE DATE TIME PROG-NAME\n" \

; ls -l | sed 1d) | column -t


# Команда "sed 1d" удаляСт ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ls,

#+ (для Π»ΠΎΠΊΠ°Π»ΠΈ "Π‘" это строка: "total N",

#+ Π³Π΄Π΅ "N" -- ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ„Π°ΠΉΠ»ΠΎΠ².


# ΠšΠ»ΡŽΡ‡ -t, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "column", ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ "Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅" прСдставлСниС.


exit 0

colrm

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° удалСния ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. УдаляСт ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ (столбцы) сиволов ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° stdout. colrm 2 4 <filename -- ΡƒΠ΄Π°Π»ΠΈΡ‚ символы со 2-Π³ΠΎ ΠΏΠΎ 4-ΠΉ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π² Ρ„Π°ΠΉΠ»Π΅ filename.

Если Ρ„Π°ΠΉΠ» содСрТит символы табуляции ΠΈΠ»ΠΈ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ самым Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ colrm, Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅, ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ expand ΠΈ unexpand.

nl

НумСруСт строки Π² Ρ„Π°ΠΉΠ»Π΅. nl filename -- Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ„Π°ΠΉΠ» filename Π½Π° stdout, ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки вставит Π΅Π΅ порядковый Π½ΠΎΠΌΠ΅Ρ€, счСт начинаСтся с ΠΏΠ΅Ρ€Π²ΠΎΠΉ нСпустой строки. Если Ρ„Π°ΠΉΠ» Π½Π΅ указываСтся, Ρ‚ΠΎ принимаСтся Π²Π²ΠΎΠ΄ со stdin.

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ nl ΠΎΡ‡Π΅Π½ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ cat -n, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ nl Π½Π΅ Π½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚ пустыС строки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-21. nl: Π‘Π°ΠΌΠΎΠ½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ сцСнарий.

#!/bin/bash


# Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сСбя сам Π½Π° stdout Π΄Π²Π°ΠΆΠ΄Ρ‹, нумСруя строки сцСнария.


# 'nl' вставит для этой строки Π½ΠΎΠΌΠ΅Ρ€ 3, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π½Π΅ Π½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚ пустыС строки.

# 'cat -n' вставит для этой строки Π½ΠΎΠΌΠ΅Ρ€ 5.


nl `basename $0`


echo; echo # А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ вывСсти тСкст сцСнария с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 'cat -n'


cat -n `basename $0`

# Различия состоят Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ 'cat -n' Π½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚ всС строки.

# ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: 'nl -ba' -- сдСлаСт Ρ‚ΠΎ ΠΆΠ΅ самоС.


exit 0

pr

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° ΠΊ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° Π½Π° страницы, приводя Π΅Π³ΠΎ Π² Π²ΠΈΠ΄ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈΠ»ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран. Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ манипуляции Π½Π°Π΄ строками ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ строки, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ поля, Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ строки, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Ρ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° pr соСдиняСт Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠ°ΠΊ nl, paste, fold, column ΠΈ expand.

pr -o 5 --width=65 fileZZZ | more -- выдаст Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ΅ ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚ΠΎΠ΅ Π½Π° страницы содСрТимоС Ρ„Π°ΠΉΠ»Π° fileZZZ.

Π₯ΠΎΡ‡Ρƒ особо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -d, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строки с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ (Ρ‚ΠΎΡ‚ ΠΆΠ΅ эффСкт, Ρ‡Ρ‚ΠΎ ΠΈ sed -G).

gettext

GNU ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π½ΡƒΠΆΠ΄ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° сообщСний ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π° экран, Π½Π° язык ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НС смотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС C, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ gettext с успСхом ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² сцСнариях ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ†Π΅Π»Π΅ΠΉ. Π‘ΠΌ. info page.

iconv

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° прСобразования тСкста ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Π’ основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½ΡƒΠΆΠ΄ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

recode

ΠœΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ»Π½ΠΎΡΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ iconv, описанной Π²Ρ‹ΡˆΠ΅. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для прСобразования тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.