БпСстСтС 15% ΠΎΡ‚ всички хостинг услуги

ВСствай умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠžΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
Заглавия
Linux

Linux ΠΊΠΎΠΌΠ°Π½Π΄Π° `dos2unix`: ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° скрити Windows символи ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‚Π΅ тСкстови Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Windows ΠΈ Linux систСми, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΈ символи Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π±Π΅Π·ΡˆΡƒΠΌΠ½ΠΎ Π΄Π° поврСдят Π²Π°ΡˆΠΈΡ‚Π΅ скриптовС, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»Π½Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° Π² Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ всяка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° края Π½Π° Ρ€Π΅Π΄: Windows ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° послСдоватСлност carriage return + line feed (rn, извСстна ΠΎΡ‰Π΅ ΠΊΠ°Ρ‚ΠΎ CRLF), Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Linux ΠΎΡ‡Π°ΠΊΠ²Π° само line feed (n, ΠΈΠ»ΠΈ LF). Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ символ r β€” Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ β€” ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ нСуспСх Π½Π° шСл скриптовС с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, Π΄Π° Π½Π°Ρ€ΡƒΡˆΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ парсСри ΠΈ Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ ΠΈΠ·Ρ…ΠΎΠ΄ Π² инструмСнти Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° тСкст ΠΊΠ°Ρ‚ΠΎ awk, sed ΠΈ grep.

ΠŸΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° dos2unix Π΅ създадСна спСциално Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Вя ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° Windows-стил CRLF окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΎΡ‚ тСкстови Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π³ΠΈ замСня с Unix-стил LF окончания, ΠΏΡ€Π°Π²Π΅ΠΉΠΊΠΈ Π²Π°ΡˆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ напълно ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с Linux инструмСнтариума. Π’ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΎΠ±Ρ…Π²Π°Ρ‰Π° всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅: ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ dos2unix ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ инсталиратС Π½Π° основнитС Linux дистрибуции, пълния ΠΌΡƒ синтаксис ΠΈ ΠΎΠΏΡ†ΠΈΠΈ, ΠΈ практичСски ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΎΡ‚ рСалния свят.

Какво Π΅ dos2unix ΠΈ Π·Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ?

dos2unix Π΅ Π»Π΅ΠΊΠ°, с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° командния Ρ€Π΅Π΄, която ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° тСкстови Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ DOS/Windows Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (CRLF окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅) към Unix/Linux Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (LF окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅). МоТС ΡΡŠΡ‰ΠΎ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° конвСртация (unix2dos), Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° класичСски Mac окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ (само CR) ΠΈ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎ-бСзопасни Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π—Π°Ρ‰ΠΎ скрититС символи r причиняват Ρ€Π΅Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ

Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ Bash скрипт, създадСн ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½ Π½Π° Windows машина. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π³ΠΎ стартиратС Π½Π° Linux, ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ:

bash: ./deploy.sh: /bin/bash^M: bad interpreter: No such file or directory

Π’ΠΎΠ²Π° ^M Π΅ Π²ΠΈΠ·ΡƒΠ°Π»Π½ΠΎΡ‚ΠΎ прСдставянС Π½Π° r. Π¨Π΅Π»ΡŠΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ shebang Ρ€Π΅Π΄ΡŠΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° скрит carriage return. По ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½, Python скриптовС, cron Π·Π°Π΄Π°Ρ‡ΠΈ, .env Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Nginx ΠΈΠ»ΠΈ Apache ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Windows окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅.

Π’ΠΎΠ²Π° Π΅ особСно ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π² ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ срСди. Ако управляватС срСда Π·Π° VPS Π₯остинг ΠΈΠ»ΠΈ Dedicated ΡΡŠΡ€Π²ΡŠΡ€, Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ скриптовС ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° спрС услугитС. Π—Π½Π°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Ρ‚Π΅ ΠΈ поправятС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с окончанията Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π΅ основно ΡƒΠΌΠ΅Π½ΠΈΠ΅ Π·Π° систСмСн администратор.

Как Π΄Π° инсталиратС dos2unix Π½Π° Linux

ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ основни Linux дистрибуции Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ dos2unix Π² стандартнитС си Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ подходящата ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° Π²Π°ΡˆΠ°Ρ‚Π° дистрибуция:

Debian / Ubuntu

sudo apt-get update && sudo apt-get install dos2unix

CentOS / RHEL / AlmaLinux / Rocky Linux

sudo yum install dos2unix

Fedora

sudo dnf install dos2unix

Arch Linux

sudo pacman -S dos2unix

openSUSE

sudo zypper install dos2unix

Π‘Π»Π΅Π΄ инсталацията ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΎ:

dos2unix --version

ΠžΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Windows окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΏΡ€Π΅Π΄ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° стартиратС dos2unix, Π΅ Π΄ΠΎΠ±Ρ€Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π΄Π° ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈΡ‚Π΅, Ρ‡Π΅ Π΄Π°Π΄Π΅Π½ Ρ„Π°ΠΉΠ» дСйствитСлно ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° CRLF окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅. Няколко ΠΌΠ΅Ρ‚ΠΎΠ΄Π° работят Π΄ΠΎΠ±Ρ€Π΅:

ИзползванС на file:

file filename.txt

Π˜Π·Ρ…ΠΎΠ΄ΡŠΡ‚ Π·Π° Ρ„Π°ΠΉΠ» Π² Windows Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‰Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° CRLF line terminators.

ИзползванС на cat -A:

cat -A filename.txt

Windows окончанията Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ сС появяват ΠΊΠ°Ρ‚ΠΎ ^M$ Π² края Π½Π° всСки Ρ€Π΅Π΄. Unix окончанията Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ само $.

ИзползванС на hexdump:

hexdump -C filename.txt | grep -i "0d 0a"

Π‘Π°ΠΉΡ‚ΠΎΠ²Π°Ρ‚Π° послСдоватСлност 0d 0a Π΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Π΅ΡΠ΅Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ прСдставянС Π½Π° rn.

ПълСн синтаксис Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° dos2unix

dos2unix [options] [input_file] [output_file]

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·Π²ΠΈΠΊΠ° само с Π²Ρ…ΠΎΠ΄Π΅Π½ Ρ„Π°ΠΉΠ», dos2unix ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° Ρ„Π°ΠΉΠ»Π° Π½Π° място, прСзаписвайки ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°. ΠšΠΎΠ³Π°Ρ‚ΠΎ са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ Π²Ρ…ΠΎΠ΄Π΅Π½, ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ Ρ„Π°ΠΉΠ», ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŠΡ‚ сС Π·Π°ΠΏΠ°Π·Π²Π° ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ сС записва Π² новия Ρ„Π°ΠΉΠ».

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ с ΠΎΠΏΡ†ΠΈΠΈ Π½Π° dos2unix

ΠžΠΏΡ†ΠΈΡΠ”ΡŠΠ»Π³Π° Ρ„ΠΎΡ€ΠΌΠ°ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
-o--oldfileΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² стар (Π½Π° място) Ρ€Π΅ΠΆΠΈΠΌ β€” ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅
-n--newfileΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° Π² Π½ΠΎΠ² Ρ„Π°ΠΉΠ», Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°
-c--convmodeΠ—Π°Π΄Π°Π²Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅: unix, dos ΠΈΠ»ΠΈ mac
-k--keep-timestampΠ—Π°ΠΏΠ°Π·Π²Π° врСмСвия ΠΏΠ΅Ρ‡Π°Ρ‚ Π½Π° промяна Π½Π° оригиналния Ρ„Π°ΠΉΠ»
-q--quietΠŸΠΎΡ‚ΠΈΡΠΊΠ° всички ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈ прСдупрСТдСния
-v--verboseΠžΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° информация Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ
-l--newlineДобавя Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ символ Π·Π° Π½ΠΎΠ² Ρ€Π΅Π΄
-s--safeАвтоматично пропуска Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅
-f--forceΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅
-b--keep-bomΠ—Π°ΠΏΠ°Π·Π²Π° Byte Order Mark (BOM), Π°ΠΊΠΎ Π΅ Π½Π°Π»ΠΈΡ†Π΅
-r--remove-bomΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π° Byte Order Mark (BOM)
-V--versionПоказва Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° вСрсията ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°
-h--helpПоказва ΠΏΠΎΠΌΠΎΡ‰Π½Π° информация

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° dos2unix

1. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» Π½Π° място

Най-чСстият случай Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° β€” ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ» ΠΈ прСзаписванСто ΠΌΡƒ с Unix-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° вСрсия:

dos2unix filename.txt

Π€Π°ΠΉΠ»ΡŠΡ‚ сС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π΅ сС създава Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅, Π·Π°Ρ‚ΠΎΠ²Π° сС ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠ²Π°, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

2. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ» ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π² Π½ΠΎΠ² Ρ„Π°ΠΉΠ»

Π—Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ оригиналния Ρ„Π°ΠΉΠ» ΠΈ Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ конвСртирания ΠΈΠ·Ρ…ΠΎΠ΄ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ„Π»Π°Π³Π° -n (Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Π½ΠΎΠ² Ρ„Π°ΠΉΠ»):

dos2unix -n filename.txt converted_filename.txt

Π’ΠΎΠ²Π° Ρ‡Π΅Ρ‚Π΅ filename.txt, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° Π³ΠΎ ΠΈ записва Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° Π² converted_filename.txt. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŠΡ‚ остава Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½.

3. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° мноТСство Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ навСднъТ

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ мноТСство ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:

dos2unix file1.txt file2.txt file3.txt

Всички ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚ Π½Π° място. Π’ΠΎΠ²Π° Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π·Π° Π³Ρ€ΡƒΠΏΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ малък Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ извСстни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

4. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° всички .txt Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² дирСктория

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ шСл Π³Π»ΠΎΠ±ΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ find Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ†Π΅Π»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

dos2unix *.txt

Или рСкурсивно Π² ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

find /path/to/directory -type f -name "*.txt" -exec dos2unix {} ;

Π’ΠΎΠ²Π° Π΅ особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΡƒΠ΅Π± прилоТСния ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π½Π°Π±ΠΎΡ€ΠΈ, ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½ΠΈ Π½Π° Windows машина.

5. РСкурсивно ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° всички шСл скриптовС

ЧСста Π·Π°Π΄Π°Ρ‡Π° Π·Π° систСмСн администратор β€” поправянС Π½Π° всички Bash скриптовС Π² дирСктория Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

find /var/www/myapp -type f -name "*.sh" -exec dos2unix {} ;

6. Π—Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° оригиналния Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ Π½Π° Ρ„Π°ΠΉΠ»Π°

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ dos2unix Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° промяна Π½Π° Ρ„Π°ΠΉΠ»Π°. Π—Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ оригиналния Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈ Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ make Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ):

dos2unix -k filename.txt

7. Π’ΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌ β€” потисканС Π½Π° цСлия ΠΈΠ·Ρ…ΠΎΠ΄

ИдСалСн Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² шСл скриптовС ΠΈ автоматизация, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π½Π΅ искатС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π΄Π° ΠΏΡ€Π΅Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅:

dos2unix -q filename.txt

8. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ към Mac окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ (само CR)

ΠœΠ°ΠΊΠ°Ρ€ рядко Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ днСс, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ» към класичСски Mac OS 9 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (само carriage return, r) с Ρ„Π»Π°Π³Π° Π·Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ -c:

dos2unix -c mac filename.txt

9. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ Unix ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ към DOS Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

dos2unix сС доставя Π·Π°Π΅Π΄Π½ΠΎ с unix2dos, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° опСрация β€” добавянС Π½Π° CRLF окончания Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Windows:

unix2dos filename.txt

10. ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Byte Order Mark (BOM)

Π€Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ ΠΎΡ‚ Windows прилоТСния, понякога Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ UTF-8 BOM Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Ρ€ΡƒΡˆΠΈ скриптовСтС ΠΈ парсСритС Π½Π° Linux. ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ Π³ΠΎ с:

dos2unix -r filename.txt

ИзползванС Π½Π° dos2unix Π² шСл скриптовС ΠΈ автоматизация

dos2unix сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° чисто Π² скриптовС Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ ΠΈ CI/CD ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈ. Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° скрипт Π·Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ санира всички ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΈ скриптови Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° влязат Π² ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°:

#!/bin/bash
# pre-deploy-sanitize.sh
# Converts all text files to Unix format before deployment

TARGET_DIR="/var/www/myapp"

echo "Sanitizing line endings in $TARGET_DIR..."

find "$TARGET_DIR" -type f ( -name "*.sh" -o -name "*.conf" -o -name "*.php" -o -name "*.py" ) | while read -r file; do
    dos2unix -q -k "$file"
    echo "Converted: $file"
done

echo "Done. All files converted to Unix format."

НаправСтС скрипта изпълним ΠΈ Π³ΠΎ стартирайтС ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ вашия Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅:

chmod +x pre-deploy-sanitize.sh
./pre-deploy-sanitize.sh

ЧСсти Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ отстраняванС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ

dos2unix: command not found

ΠŸΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π½Π΅ Π΅ инсталирана. Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ подходящата ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° инсталиранС Π·Π° Π²Π°ΡˆΠ°Ρ‚Π° дистрибуция (Π²ΠΈΠΆΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° Π·Π° инсталиранС ΠΏΠΎ-Π³ΠΎΡ€Π΅).

dos2unix: Binary file ... is skipped

dos2unix Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ», Ρ‡Π΅ смята Π·Π° Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» ΠΈ Π³ΠΎ Π΅ пропуснал. Ако стС сигурни, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π΅ тСкстов, ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ с:

dos2unix -f filename

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ всС ΠΎΡ‰Π΅ сС проваля слСд ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅

ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΎ:

file filename.sh

Π‘Π΅Π³Π° трябва Π΄Π° ΠΎΡ‚Ρ‡ΠΈΡ‚Π° ASCII text ΠΈΠ»ΠΈ UTF-8 Unicode text Π±Π΅Π· спомСнаванС Π½Π° CRLF. Ако ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ с hexdump.

ΠžΡ‚ΠΊΠ°Π·Π°Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ

МоТС Π΄Π° сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ повишСни ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π·Π° промяна Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ систСмни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅:

sudo dos2unix /etc/nginx/nginx.conf

dos2unix срСщу Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ

Π”ΠΎΠΊΠ°Ρ‚ΠΎ dos2unix Π΅ Π½Π°ΠΉ-чистото Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡ‚Π½ΠΈΡ‚Π΅ Linux администратори понякога ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈ инструмСнти Π·Π° Π±ΡŠΡ€Π·ΠΈ Π΅Π΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΈ конвСртирания:

ИзползванС на sed:

sed -i 's/r//' filename.txt

ИзползванС на tr:

tr -d 'r' < input.txt > output.txt

ИзползванС на awk:

awk '{ sub("r$", ""); print }' filename.txt > output.txt

ИзползванС на vim:

:set ff=unix
:wq

Π’Π΅Π·ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ работят, Π½ΠΎ dos2unix Π΅ създадСн спСциално Π·Π° Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΈ случаи (ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° BOM ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅) ΠΏΠΎ-Π΅Π»Π΅Π³Π°Π½Ρ‚Π½ΠΎ ΠΈ Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΈΡΡ‚ инструмСнт Π·Π° производствСна ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

Значимост Π·Π° ΡƒΠ΅Π± хостинг ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с окончанията Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π΅ са само нСудобство Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ β€” Ρ‚Π΅ са Ρ€Π΅Π°Π»Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² хостинг срСди. PHP скриптовС с CRLF окончания ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π°Ρ‚ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΈ Π±Π΅Π»ΠΈ пространства Π² HTTP Ρ…Π΅Π΄ΡŠΡ€ΠΈ, причинявайки нСуспСхи Π½Π° сСсии ΠΈ бисквитки. Python WSGI прилоТСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Ρ…Π²ΡŠΡ€Π»ΡΡ‚ синтактични Π³Ρ€Π΅ΡˆΠΊΠΈ. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Nginx ΠΈ Apache със скрити символи r ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠΏΡ€Π΅Ρ‡Π°Ρ‚ Π½Π° услугитС Π΄Π° стартират ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ.

Ако хостватС уСбсайтовС ΠΈΠ»ΠΈ прилоТСния Π½Π° ΠΏΠ»Π°Π½ Π·Π° Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Π½ ΡƒΠ΅Π± хостинг ΠΈΠ»ΠΈ управляватС собствСн VPS с cPanel, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° dos2unix Π² работния Π²ΠΈ процСс Π·Π° ΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΅ проста, високостойностна ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π—Π° Π΅ΠΊΠΈΠΏΠΈ, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ разполагания Π½Π° Dedicated ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, добавянСто Π½Π° dos2unix към вашия CI/CD ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° цял клас Π³Ρ€Π΅ΡˆΠΊΠΈ, спСцифични Π·Π° срСдата, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° достигнат производство.

ОсвСн Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° инфраструктура Π²ΠΊΠ»ΡŽΡ‡Π²Π° ИмСйл хостинг с пСрсонализирани скриптовС Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‰Π°, осигуряванСто Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ Unix окончания Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Ρ‚Π΅Π·ΠΈ скриптовС Π΅ ΠΎΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°.

ΠšΡ€Π°Ρ‚ΠΊΠΎ справочно Ρ€Π΅Π·ΡŽΠΌΠ΅

Π—Π°Π΄Π°Ρ‡Π°ΠšΠΎΠΌΠ°Π½Π΄Π°
ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ» Π½Π° мястоdos2unix filename.txt
ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π² Π½ΠΎΠ² Ρ„Π°ΠΉΠ»dos2unix -n input.txt output.txt
ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° мноТСство Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅dos2unix file1.txt file2.txt file3.txt
РСкурсивно ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° всички .sh Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅find . -name "*.sh" -exec dos2unix {} ;
Π—Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° оригиналния Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚dos2unix -k filename.txt
Π’ΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌ (Π±Π΅Π· ΠΈΠ·Ρ…ΠΎΠ΄)dos2unix -q filename.txt
ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° BOMdos2unix -r filename.txt
ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ към Mac Ρ„ΠΎΡ€ΠΌΠ°Ρ‚dos2unix -c mac filename.txt
ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ: Unix към DOSunix2dos filename.txt
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° окончанията Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅file filename.txt ΠΈΠ»ΠΈ cat -A filename.txt

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° dos2unix Π΅ ΠΌΠ°Π»ΠΊΠ° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° с Π½Π΅ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ голямо Π²ΡŠΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ Π² кросплатформСната Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ администриранСто Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Π‘ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ символи r са Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-чСститС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° β€žΡ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° моята ΠΌΠ°ΡˆΠΈΠ½Π°β€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС прСмСстват ΠΌΠ΅ΠΆΠ΄Ρƒ Windows ΠΈ Linux срСди β€” ΠΈ dos2unix Π³ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° чисто, бСзопасно ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

ΠšΠ°Ρ‚ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ синтаксиса ΠΈ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ ΠΌΡƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ нСуспСхи ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅, Π΄Π° осигуритС ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π½Π° скриптовСтС ΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ цСлостта Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² цялата си инфраструктура. НСзависимо Π΄Π°Π»ΠΈ стС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠ°Ρ‡Π²Π°Ρ‰ ΠΊΠΎΠ΄ Π½Π° Linux ΡΡŠΡ€Π²ΡŠΡ€, систСмСн администратор, управляващ Ρ„Π»ΠΎΡ‚Π° ΠΎΡ‚ машини, ΠΈΠ»ΠΈ собствСник Π½Π° сайт, ΠΊΠ°Ρ‡Π²Π°Ρ‰ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² хостинг срСда, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° dos2unix Π² стандартния Π²ΠΈ инструмСнтариум Π΅ лСсна Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, която носи Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Ρ‚ΠΈ всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ прСсичат Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми.