Manipulace s textem a transformace textu

Stránky: E-learning VŠCHT Praha
Kurz: Linux, shell
Kniha: Manipulace s textem a transformace textu
Vytiskl(a): Nepřihlášený host
Datum: neděle, 6. října 2024, 19.16

1. Manipulace s textem

Pro manipulaci s textovými soubory, ve smyslu spojování a rozdělování obsahu, můžeme použít příkazy split, cat, cut, paste a sort.


1.1. Příkaz split

Příkaz split rozdělí soubor podle definovaných kritérií. Nejčastěji podle počtu řádků,



nebo podle počtu, na kolik souborů ho chceme rozdělit. Rozdělení se tak provede proporčně podle velikosti.



1.2. Příkaz cat

Příkaz cat, přestože se často používá pro výpis obsahu souboru, je především určen ke slučování obsahu více souborů. Přijímá jako argumenty libovolný počet souborů, jejichž obsah má spojit dohromady.



1.3. Příkaz cut

Příkaz cut slouží pro extrakci definovaných částí (sloupců) textu oddělených definovaným separátorem ze řádků souboru. Implicitním oddělovačem je tabelátor (TAB), ale je možné pomocí přepínače -d definovat i libovolný jiný znak. Sloupce lze pak definovat jednotlivě (číslem podle pořadí), výčtem nebo rozsahem.



1.4. Příkaz paste

Příkaz paste je určen pro spojování obsahu více souborů. A to buď do sloupců s definovaným oddělovačem,



nebo za sebou po řádcích.



1.5. Příkaz sort

Příkaz sort slouží k seřazení obsahu souboru, případně i sloučení více seřazených souborů najednou. Řadit lze podle mnoha různých kritérií, nejčastěji abecedně a také reverzně.



2. Transformace textu

Pro pokročilejší transformaci textu lze využít mnoho různých příkazů, v tomto kurzu budou uvedeny příkazy tr a sed.


2.1. Příkaz tr

Příkaz tr slouží pro transliteraci (znakovou náhradu) textu. Příkaz přijímá dva argumenty. Prvním je sada znaků, které se mají nahradit. Druhým je sada znaků, kterými se mají znaky z první sady nahradit. Obě uvedené sady znaků mohou být vyjádřeny třemi způsoby - výčtem, rozsahem nebo pomocí znakových tříd.



2.2. Příkaz sed

Příkaz sed je pokročilý nástroj pro transformaci textu v řádcích souboru.

Syntaxe příkazu

sed options script file

Syntaxe skriptu

addresscommand

Příkaz sed prochází postupně všechny řádky vstupního souboru a provede s nimi příslušnou operaci (command).

operace význam
p výpis řádku
i před řádek vloží text
a za řádek vloží text
d vymaže řádek
= zobrazí číslo řádku
c změní text řádku
w zapíše řádek do souboru
r přečte řádek ze souboru
n načte následující řádek
s provede substituci v řádku
y provede transliteraci v řádku



Předchází-li příslušné operaci definice adresy (address), lze aplikovat uvedenou operaci pouze na vybrané řádky souboru.

adresa význam
n číslo řádku
$ poslední řádek
/regexp/ řádek splňující regulární výraz BRE
addr1,addr2 všechny řádky v rozsahu addr1 a addr2
first~step řádky od čísla first a další s krokem step
addr1,+n řádky od čísla addr1 a n následujících
addr! všechny řádky kromě uvedených (definované mohou být libovolným z výše uvedených způsobů)