πŸ’» Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Expand ΠΈ Unexpand с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

by itisgood

Π’ этом руководствС ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Linux, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Expand ΠΈ Unexpand, с практичСскими ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ интСрСсуСтся, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Expand ΠΈ Unexpand ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π·Π°ΠΌΠ΅Π½Ρ‹ символов TAB Π² Ρ„Π°ΠΉΠ»Π°Ρ… символами SPACE ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π’ MS-DOS Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«ExpandΒ», которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для раскрытия сТатого Ρ„Π°ΠΉΠ»Π°.

Но ΠΊΠΎΠΌΠ°Π½Π΄Π° Linux Expand просто ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

Π­Ρ‚ΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ GNU coreutils ΠΈ написаны Дэвидом МаккСнзи.

Для дСмонстрации Π² этом руководствС я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«ostechnix.txtΒ». ВсС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ протСстированы Π² Arch Linux.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ expand

Как я ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π», ΠΊΠΎΠΌΠ°Π½Π΄Π° Expand замСняСт символы TAB Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π° символы ΠŸΠ ΠžΠ‘Π•Π›.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ ostechnix.txt ΠΈ запишСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² стандартный Π²Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ expand ostechnix.txt

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, просто Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

$ expand ostechnix.txt>output.txt

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, читая ΠΈΠ· стандартного Π²Π²ΠΎΠ΄Π°.

Для этого просто запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«expandΒ» Π±Π΅Π· указания ΠΈΠΌΠ΅Π½ΠΈ исходного Ρ„Π°ΠΉΠ»Π°:

$ expand

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ тСкст ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ enter, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. НаТмитС CTRL + C, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ.

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ послС нСпустых ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ -i, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

$ expand -i ostechnix.txt

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ количСством символов, Π° Π½Π΅ с 8 (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ):

$ expand -t=5 ostechnix.txt

Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ нСсколько ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ табуляции с запятой, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

$ expand -t 5,10,15 ostechnix.txt

ΠΈΠ»ΠΈ

$ expand -t "5 10 15" ostechnix.txt

Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ справочным страницам.

$ man expand

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹Β Unexpand

Как Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ догадались, ΠΊΠΎΠΌΠ°Π½Π΄Π° Unexpand сдСлаСт ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Expand. Ρ‚.Π΅. ΠΎΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ символы SPACE Π² символы TAB.

Бинтаксис Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ (ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ) Π² Ρ„Π°ΠΉΠ»Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π² stdout, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

$ unexpand ostechnix.txt

И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ πŸ™‚

 

You may also like

Leave a Comment