Kouzla příkazového řádku: Zrušení Macovských konců řádků

UNIX based
Foto: BSD
Poslat odkaz Kouzla příkazového řádku: Zrušení Macovských konců řádků na facebook Poslat odkaz Kouzla příkazového řádku: Zrušení Macovských konců řádků na twitter

Rozhodl jsem se chvíli se věnovat terminálu Mac OS X. Za tímto účem má rozčteno pár knížek, některé nápady mi připadly zajímavé, proto se objeví v této rubrice. Dnes je zde jednoduchá finta na změnu stylu řádkování.

Finta spočívá v tom, využít perlovských funkcí pro práci s text a nahrazením sekvence znaků něčím přijatelnějším pro vaše potřeby. Klíčová je znalost toho, že Macovské konce řádků se označují dvěma znaky "rn", zatímco ostatní systémy používají jednoznakové konce řádků "r" nebo "n".

Pro označení které znaky se mají vyměnit slouží regulérní výraz 's/rn/r/g'. Značka s označuje subsituci, první lomítko označuje začátek substituovaného řetězce. Zpětné lomítko označuje, že následující znak není znak v pravém slova smyslu ale jeho "programátorská" reprezentace v případě r se jedná ve skutečnosti o znak nového řádku. Totéž je v případě n. Další lomítko označuje konec substitovaného řetězce a začátek řetězce, který ten původní nahradí. V našem případě je to znak r. Další lomítko označuje konec řetězce. Znak g na úplném konci pak označuje, že se substituce má provést ve všech výskytech substituovaného řetězce na řádku (bez něj se nahradí pouze první výskyt na řádku a pokračuje se dalším řádkem).

Mac OS používá pro zalomení řádků znak r, označovaný také jako carriage Return. Unixy oproti tomu používají znak n označovaný jako single linefeed. Windows jdou kupředu a pro jistotu používají oba v kombinaci rn.

No a nyní ty slíbené příkazy:

perl -pi -e 's/r/n/g' soubor_s_macovskymi_radky.txt
perl -pi -e 's/n/r/g' soubor_s_unixovymi_radky.txt
perl -pi -e 's/rn/n/g' soubor_s_radkovanim_windows.txt
Bohužel jsem neměl dost času zkoušet, jestli je to zcela správně, nicméně se domnívám, že s tímto návodem můžete dělat mnohem více než jen změnu řádkování.

Publikováno: 30.11.2005

 

 

Změna barev | Autorská práva | Kontakt | Podpora | RSS kanály
© 2006 Gandalf, Design by Mirek
Creative Commons License