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ů)
|