GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit (^M) znaky ze souboru v Linuxu

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.


Linux
  1. Jak přidat nebo odebrat uživatele ze skupiny v Linuxu

  2. Jak přejmenovat soubor v Linuxu?

  3. Jak mohu odstranit jenkins úplně z linuxu

  1. Jak odstranit Bom ze souboru UTF-8?

  2. Jak odebrat uživatele ze skupiny v Linuxu [Rychlý tip]

  3. Jak odstraním nové řádky z textového souboru?

  1. Jak vytvořit soubor v Linuxu z okna terminálu?

  2. Jak odstranit setgid (linux/unix)?

  3. Jak stáhnout soubor z URL v Linuxu