GNU/Linux >> Znalost Linux >  >> Linux

Nahraďte chytré uvozovky příkazem sed pro Linux

V typografii byly dvojice uvozovek tradičně orientovány proti sobě. Vypadají takto:

„chytré uvozovky“

Když se v polovině dvacátého století staly počítače populární, často se od této orientace upouštělo. Původní znaková sada počítačů neměla příliš místa nazbyt, takže dává smysl, že dvě dvojité uvozovky a dvě jednoduché uvozovky byly ve specifikaci ASCII zredukovány na pouze jednu. V dnešní době je běžnou znakovou sadou Unicode, se spoustou prostoru pro spoustu efektních uvozovek a apostrofů, ale mnoho lidí si zvyklo na minimalismus pouze jednoho znaku pro úvodní i závěrečné uvozovky. Kromě toho počítače ve skutečnosti vidí různé druhy uvozovek a apostrofů jako odlišné znaky. Jinými slovy, pro počítačového uživatele se pravá dvojitá uvozovka liší od levé dvojité uvozovky nebo rovné uvozovky.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Nahrazení chytrých uvozovek za sed

Počítače nejsou psací stroje. Když stisknete klávesu na klávesnici, nestisknete páku s připojeným inkoustovým razítkem. Právě mačkáte tlačítko, které vašemu počítači vyšle signál, který počítač interpretuje jako požadavek na zobrazení konkrétního předdefinovaného znaku. Požadavek závisí na mapě vaší klávesnice. Jako písař Dvorak jsem byl svědkem zmatku ve tvářích lidí, když objevili, že „asdf“ na mé klávesnici produkuje „aoeu“ na obrazovce. Možná jste také stiskli speciální kombinace kláves pro vytvoření znaků, jako je ™ nebo ß nebo ≠, které ani nejsou vytištěny na vaší klávesnici.

Každé písmeno nebo znak, ať už je vytištěno na klávesnici nebo ne, má kód. Kódování znaků lze vyjádřit různými způsoby, ale pro počítač sekvence Unicode u2018 a u2019 vytvářejí a ' , zatímco kódy u201c a u201d vytvářejí a znaky. Znalost těchto "tajných" kódů znamená, že je můžete nahradit programově pomocí příkazu jako sed. Postačí jakákoli verze sed, takže můžete použít GNU sed nebo BSD sed nebo dokonce Busybox sed.

Zde je jednoduchý shell skript, který používám:

#!/bin/sh
# GNU All-Permissive License

SDQUO=$(echo -ne '\u2018\u2019')
RDQUO=$(echo -ne '\u201C\u201D')
$SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"

Uložte tento skript jako fixquotes.sh a poté vytvořte samostatný testovací soubor obsahující chytré uvozovky:

‘Single quote’
“Double quote”

Spusťte skript a poté pomocí příkazu cat zobrazte výsledky:

$ sh ./fixquotes.sh test.txt
$ cat test.txt
'Single quote'
"Double quote"

Instalovat sed

Pokud používáte Linux, BSD nebo macOS, pak již máte GNU nebo BSD sed nainstalováno. Toto jsou dvě jedinečné reimplementace původního sed a pro skript v tomto článku jsou funkčně stejné (to však neplatí pro všechny skripty).

V systému Windows můžete nainstalovat GNU sed s Chocolatey.


Linux
  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Nahraďte chytré uvozovky příkazem sed pro Linux

  3. Zkontrolujte stav souboru v systému Linux pomocí příkazu stat

  1. Plánování úloh pomocí linuxového příkazu cron

  2. Diagnostikujte problémy s připojením pomocí příkazu Linux ping

  3. Zvládněte příkaz Linux ls

  1. Naplánujte si úlohu pomocí příkazu Linux at

  2. Jak používat příkaz sed pro Linux

  3. Začínáme s příkazem tac systému Linux