27Jun

Průvodce pro začínající uživatele Shell Scripting 3: Další základní příkazy &Řetězy

click fraud protection

Naučil jste se vytvářet skripty, používat argumenty a vytvářet smyčky. Nyní se podívejme na některé další základní příkazy, manipulaci s textovými soubory a přesměrování vstupu a výstupu na soubory a další příkazy.

Některé základní užitečné příkazy

Už jsme vám poskytli základní rozpis shell skriptů a příkladový obrys pro smyčky, ale nezapomeňte se podívat na tyto články, pokud jste doposud zmeškali náš průvodce skriptováním prostředí.

Příkazový řádek je z mnoha důvodů skvělý a přesměrování je jedním z nejvýznamnějších. Pokud jste museli vzít na vědomí a reprodukovat výstup z každého příkazu, aby bylo možné podniknout další kroky nebo použít něco jiného, ​​pak bychom už dávno zbláznili. Přesměrování nám umožňuje použít tento výstup a uložit ho nebo ho okamžitě použít jako vstup pro jiný příkaz. Můžeme také použít soubory jako vstupy pro další příkazy.

Předtím než budeme pokračovat, pojďme se podívat na některé základní příkazy, které mohou být užitečné na mnoha různých místech.

instagram viewer

echo - Tento příkaz jednoduše vytiskne( zobrazí) celý argument na příkazovém řádku jako výstupní

echo argument s mezerami

Jak vidíte, speciální znaky musí být "uniklé", takže se s nimi zachází normálně.To se provádí pomocí zpětného lomítka( \) před znakem. Je lepší představit si citace. Příkaz echo pracuje také s proměnnými.

Jak vidíte, jednoduché a dvojité uvozovky se chovají jinak. Pro více informací se podívejte na Jaký je rozdíl mezi jednotlivými a dvojitými kotacemi v Bash Shell?

cat - Tento příkaz zobrazí obsah textových souborů jako výstup.

cat file_to_be_read

Řekněme, že vytvoříme tento textový soubor v nano:

Když použijeme příkaz cat na soubor, můžeme vidět jeho výstup.

grep - Jedná se o jeden z nejsilnějších a nejužitečnějších příkazů, které máte k dispozici v Linuxu. Jedná se o tisk Global / Regular Expression Print. Hledá soubor a vytiskne libovolný řádek, který odpovídá určitému vzoru. Vzhledem k tomu, že tento vzor je založen na "regulárním výrazu", stručná čára může přinést množství vzorků, které mají být splněny. Ne, ale můžete zadat tern pro hledání.

file grep pattern

Ujišťuji vás, že grep může dělat víc, ale zatím se držme jednodušších věcí.

Přesměrování výstupů

Chcete-li přesměrovat výstup příkazu do souboru, použijeme speciální znak, symbol větší( & gt;).

Změníme náš seznam, ano? Zadejte následující příkaz:

echo pepperoni & gt;seznam

Zjistíte, že ozvěna již linku nezobrazuje a když se podíváme na obsah souboru "seznamu", vidíme, co jsme zopakovali tam.

Také bere na vědomí, že předchozí obsah "seznamu" byl odstraněn. Vyzkoušejte to znovu:

To může být užitečné, pokud chcete znovu použít soubor, ale často se chceme jen přidat k existujícímu souboru. Pro tento účel používáme dva po sobě jdoucí symboly:

echo yellow paprsky & gt;seznam

Snadné!Použijeme tento příkaz k vytvoření většího seznamu, ano?

Tam jdeme. Myslím, že můžete vidět, proč tolik geeků používá příkazový řádek pro seznamy úkolů a podobně, ale ještě lepší.

Pojďme na výstup příkazu a vložme jej do souboru:

ls -al />~ / rootlist

Vytváření seznamů souborů, jejich úpravy a spuštění příkazů na těch, které chcete, nebylo nikdy jednodušší.A když provádíme tyto základní funkce v příkazovém řádku, fungují to i ve skriptech.

potrubí nebo řetězec

Potrubí je takto pojmenováno, protože používá potrubí( |, sdílené s klávesou \ na většině klávesnic).V podstatě trvá výstup jednoho příkazu a přímo ho přenáší do jiného. Můžete vytvořit dlouhé řetězce příkazů, abyste získali velmi specifický požadovaný výstup tímto způsobem, a je to velmi výhodné pro příkazy jako grep.

Jedná se spíše jako "& gt;", s výjimkou toho, že může být řetězováno vícekrát a jeho účinek je obecnější v tom, že nepotřebuje procházet textový soubor.

Jak vidíte, grep se rozlišuje velká a malá písmena. Příznak "-i" můžete použít k ignorování případu.

Přesměrování vstupů

Můžete také zadávat vstupy ze souborů příkazů pomocí symbolu méně než(

cat

"To se nijak neliší od použití argumentu!", Můžete říct. No, v tomto případě byste byli správní.Tam, kde přesměrování vstupu skutečně přichází v pořádku, je to ve spojení řetězců.

Řekněme, že chceme filtrovat jakékoliv slovo, které má "pep" z našeho aktuálního "seznamu" souboru do nového souboru s názvem "revize".

grep pep

Opakujme tento příkaz a přidáme nějaké řazení.

grep pep

Jako vyhledávací termín použije "pep" ze vstupního souboru "list", zoradí jej v abecedním pořadí( všechny velkými písmeny následují všechny malé výrazy) a pak jej uvede do souboru "revizí".

Chcete-li ukázat příkaz řazení, podívejte se na následující příklad:

Jak vidíte, přidání příznaku "-f" příkazu řazení umožňuje ignorovat případ. Díky tomu je pro nás snadné alfabetizovat řádky v textových souborech a při neplatnosti ignorovat kapitalizaci.

Jednoduchý skript

Vytvořme skript, který má následující podobu:

skript searchterm listfile

Bude trvat na termínu a použijete grep pro vyhledání souboru seznamu, řazení výsledků a jejich výstup do jiného souboru.

Zde je adresář, který budeme testovat skript v:

A můžeme vytvořit seznam toho, co zde, a pak spustit skript.

Tam jdete!Čím více se naučíte pravidel regulárních výrazů, tím přesněji sestavíte příkaz pro vyhledávání.A všechno, co je platné v uvozovkách, může nahradit váš první argument!

Pokud jde o třídění, můžete dělat více než jen řazení podle abecedy. Podívejte se na manuálovou stránku pro některé z následujících příkazů:

  • tsort - pokročilejší topologická funkce třídění
  • tr - umožňuje mapovat specifické znaky na jiné znaky a přepisovat je mezi nimi.
  • uniq - odstraní jakoukoliv ne-jedinečnou( čtení: duplicitní)
  • awk - opravdu pokročilý jazyk / funkci zpracování textu, které lze použít k oddělování polí v názvech souborů
  • cut, paste / join - příkazy pro izolaci polí z textových souborů a přidánínová data do sloupců Hledání
  • - vyhledávání jako grep, ale prohledávací soubor( který může být uživatelem zadán) pro vyhledání
  • wc - umožňuje zobrazit počet slov, počet řádků, počet znaků a další

na některých základních dnech dnes může být stejně užitečné na příkazovém řádku jako v skriptech. Textová data jsou často jádrem věcí, které denně používáme, a proto je s nimi schopna pracovat, vyhledávat a manipulovat s nimi.

Jaké jsou některé z vašich oblíbených skriptů?Máte nějaké speciální skripty pro textové soubory? Sdílejte to, co znáte v komentářích!