Společnou funkční jedinečností různých prostředí operačních systémů je způsob, jakým nakládají a zpracovávají data. Tato funkce spočívá ve způsobu, jakým jsou vnímána a zpracovávána textová data souboru.
Můžete si například nechat vytvořit a naplnit normální textový soubor ve výpočetním prostředí Windows, ale jakmile je stejný soubor přenesen na počítačovou platformu Linux, bude zpracován a zobrazen jinak.
Existuje logické vysvětlení pro špatné chování těchto přenesených textových souborů. Ve výpočetním prostředí Windows OS uznává přítomnost nového řádku v textovém souboru pomocí specifického konce řádku.
Zatímco reprezentace tohoto návratu vozíku (CR ) znak je očím těchto uživatelů systému Windows skrytý, přenos tohoto souboru do výpočetního prostředí Linux jej odhalí jako ^M
znaky.
Příčiny a následky postav ^M
Musíte narazit na tyto ^M
problémy se znaky při přímém kopírování nebo stahování souborů z prostředí operačního systému Windows do prostředí operačního systému Linux. Protože odhalit tyto otravné postavy není tak snadné; zvláště u velkých souborů si možná budete myslet, že váš stažený nebo přenesený konfigurační textový soubor je poškozený nebo poškozený.
Následky těchto ^M
efektem postavy jsou nevysvětlitelné syntaktické chyby a selhání systémových služeb. Tento průvodce článkem se snaží dosáhnout dvou cílů:
- Pomůže vám identifikovat ^M znaky na souborech otevřených nebo stažených v prostředí operačního systému Linux.
- Pomůže vám vyřešit problém ^M problém se znaky tím, že jej odstraníte z textových souborů.
Identifikace znaků ^M v souborech Linux
Než se pokusíme ošetřit ^M
znaků na souborech Linuxu, je identifikace těchto znaků důležitým diagnostickým krokem. Pomůže vám určit, zda je problém s vaším textovým souborem (pokud jej používáte jako konfigurační soubor), nebo je problém jinde ve vašem systému Linux.
Zvažte existenci následujícího OS Windows, který vytvořil soubor (windows-downloaded-file.txt ), který je nyní přenesen do mého prostředí operačního systému Linux:
$ cat windows-downloaded-file.txt
Otevřený soubor se zdá být normální. Je to proto, že příkaz linuxový cat; a výběr dalších textových editorů podporovaných Linuxem bude ve výchozím nastavení ignorovat zobrazení ^M
znaky na souborech vytvořených z prostředí OS Windows.
Je to proto, že ^M
je kategorizován jako netisknutelný znak. Abychom odhalili existenci těchto znaků v souboru vytvořeném systémem Windows, použijeme linuxový příkaz cat spolu s -v
možnost.
$ cat -v windows-downloaded-file.txt
Nyní, když jsme si všimli existence těchto otravných ^M
postav, je čas se jich zbavit.
Odebrání znaků ^M ze souborů Linux
Budeme používat dos2unix užitečnost. Nainstalujte jej do vaší preferované distribuce Linuxu některým z následujících příkazů:
$ sudo apt-get install dos2unix [On Debian, Ubuntu and Mint] $ sudo yum install dos2unix [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/dos2unix [On Gentoo Linux] $ sudo pacman -S dos2unix [On Arch Linux] $ sudo zypper install dos2unix [On OpenSUSE]
Chcete-li odstranit ^M
znaků z našeho souboru staženého ve Windows, spustíme následující příkaz:
$ dos2unix windows-downloaded-file.txt
Zkontrolujte existenci ^M
znaky.
$ cat windows-downloaded-file.txt
Nyní chápete důsledky a řešení problému ^M
znak na souborech přenesených z jiných operačních systémů, jako je OS Windows. dos2unix nástroj bez námahy převede takové soubory do formátů UNIX, které jsou podporovány ve všech prostředích operačního systému Linux.