GNU/Linux >> Znalost Linux >  >> Linux

Pomocí Bash Sort třídíte soubory jako šéf

Hledáte způsob, jak organizovat soubory a provádět s nimi nějaké operace? V programování existuje mnoho případů, kdy potřebujete seřadit některá data, například seznam souborů. Řazení souborů pomocí Bash sort a ls příkazy vám pomohou udržet věci uspořádané.

V tomto tutoriálu se naučíte základy třídění souborů a obsahu souborů.

Pojďme třídit!

Předpoklady

Tento tutoriál používá Ubuntu 20.04, ale bude fungovat jakákoli distribuce Linuxu.

Bash řadit soubory abecedně

V Linuxu existuje spousta způsobů, jak třídit soubory, ale pojďme se pustit do nejběžnějšího způsobu, řazení souborů podle abecedy.

Spusťte svůj terminál a spusťte ls -l příkazem níže získáte seznam souborů v adresáři ve vzestupném pořadí. -l příznak říká ls příkaz k vytištění vráceného výstupu ve formátu dlouhého seznamu.

ls -l

Ve výchozím nastavení je ls příkaz vypíše soubory ve vzestupném pořadí. Chcete-li změnit pořadí řazení, předejte -r příznak na ls -l příkaz, jako je tento:ls -lr . Předání -r příznak na ls -l příkaz se vztahuje na další příklady v tomto tutoriálu.

Použití Bash k řazení souborů podle velikosti

Místo řazení souborů podle abecedy můžete chtít řadit soubory podle velikosti souboru. Řazení souborů podle velikosti je užitečné, když upřednostňujete zobrazení nejmenších nebo největších souborů v seznamu.

Chcete-li seřadit soubory podle velikosti, předejte -S příznak sdělit ls příkaz seřadit seznam souborů podle velikosti souboru.

Spuštěním příkazu níže zobrazíte seznam souborů (ls ) seřazené podle velikosti souboru ve formátu dlouhého seznamu (-lS ).

ls -lS

Níže můžete vidět příkaz seřadit soubory podle velikosti v sestupném pořadí (velikost od největší po nejmenší).

Chcete-li obrátit pořadí řazení (od nejmenšího k největšímu), přidejte -r příznak, jako je tento:ls -lSr

Seřadit soubory podle času úpravy pomocí řazení Bash

Když přejdeme od řazení souborů podle velikosti, můžete se setkat s případem použití, kdy potřebujete seřadit soubory podle času, kdy byly upraveny. Například jste zapomněli název souboru, který jste vytvořili, a pamatujete si pouze čas, kdy jste soubor naposledy upravili.

Spusťte níže uvedený příkaz, kde je -t parametr říká ls příkaz k řazení souborů podle času úpravy.

ls -lt

Řazení souborů podle přípony souboru

Když hledáte soubor s konkrétním typem souboru, je řazení souborů podle přípony ideálním řešením.

Chcete-li zobrazit seznam souborů, spusťte příkaz níže (ls ) v pracovním adresáři a seřadit podle jejich přípon (-lx ).

ls -lX

Všimněte si níže, že příkaz seřadil soubory se stejnou příponou ve vzestupném pořadí na základě jejich názvů.

Řazení obsahu v textovém souboru

Nyní jste se naučili různé metody řazení souborů v adresáři. Přesun zaměření z ls zkuste spustit sort příkaz. sort příkaz třídí obsah souboru podle příznaku, který budete přidávat. Nejprve však potřebujete soubor s obsahem, který upravíte.

Spuštěním příkazu níže vytvořte textový soubor s názvem ~/data/fruits.txt který obsahuje názvy ovoce. -e flag umožňuje interpretaci zpětného lomítka pro zapsání každého slova na nový řádek (\n ).

echo -e "apple \nmango \nwatermelon \ncherry \norange \nbanana" > fruits.txt

Nyní spusťte níže uvedený příkaz na sort každé slovo v fruits.txt .

sort fruits.txt

Níže můžete vidět, že obsah souboru je seřazen vzestupně.

Bez jakýchkoli příznaků, sort příkaz standardně třídí obsah souboru ve vzestupném pořadí. Chcete-li obrátit pořadí řazení, přidejte -r flag příkazu sort, takto:sort -r fruits.txt . Řazení v opačném pořadí přidáním -r příznak se vztahuje na další příklady v tomto tutoriálu.

Řazení seznamu čísel v textovém souboru

Příkaz k řazení čísel je podobný řazení textů v souboru, ale přidáte -n místo toho vlajka. Nejprve vytvořte soubor, abychom si ukázali, jak numericky třídit obsah souboru.

Spuštěním níže uvedeného příkazu vytvořte soubor s názvem ~/data/scores.txt který obsahuje náhodná čísla, každé na novém řádku.

echo -e "45 \n69 \n52 \n21 \n3 \n5 \n78" > scores.txt

Nyní spusťte níže uvedený příkaz na sort čísla (-n ) v souboru ~/data/scores.txt soubor.

sort -n scores.txt

Níže můžete vidět čísla uvedená v řádcích od nejmenšího po největší číslo.

Řazení seznamu čísel verzí v textovém souboru

Možná máte seznam čísel verzí v textovém souboru, který chcete seřadit. Pokud ano, přidejte --version-sort volba udělá své.

Chcete-li ukázat, jak --version-sort možnost funguje, nejprve vytvořte textový soubor.

Spuštěním níže uvedeného příkazu vytvořte textový soubor s názvem ~/data/versions.txt s náhodnými čísly verzí, každé na novém řádku (\n ).

echo -e "1.0.0.1 \n 6.2.1.0 \n4.0.0.2" > versions.txt

Nyní spusťte níže uvedený příkaz na sort čísla verzí (--version-sort ) v souboru versions.txt soubor. --field-separator volba říká sort příkaz, že čísla v každé verzi jsou oddělena tečkou (. ). Oddělovač polí můžete změnit na jakýkoli znak, který odděluje čísla na verzích uvedených ve vašem textovém souboru.

sort --version-sort --field-separator=. versions.txt

Bash Sort pro vyhledání a řazení souborů pomocí přípony souboru

Spouštěli jste jednotlivé příkazy (buď ls nebo sort ) v předchozích příkladech. Ale při programování může být často nutné použít dva nebo více příkazů dohromady. Jak? Zřetězením jednoho příkazu do druhého.

Spusťte níže uvedený příkaz na find všechny soubory markdown (-iname "*.md" ) v pracovním adresáři (. ) a seřadit je v abecedním sestupném pořadí (sort -r ). Zkuste najít a seřadit další soubory změnou "*.md" na jinou příponu souboru.

find . -iname "*.md" | sort -r

Pokud dáváte přednost uložení seřazeného výstupu do textového souboru namísto standardního výstupu na konzoli, přidejte --output možnost, jako je tato:find . -iname "*.md" | sort -r --output=sorted.txt . --output volba říká sort příkaz k vytvoření výstupního souboru pro seřazený seznam souborů.

Závěr

Motivem tohoto článku bylo naučit vás různé způsoby řazení pomocí příkazů Bash na počítači se systémem Linux. Nyní jste se naučili třídit seznam souborů a třídit obsah souborů. Kromě toho byste také měli vědět, jak zpracovat různé příkazy pro složitější třídění souborů.

S těmito nově nalezenými znalostmi jako odrazovým můstkem, proč nevytvářet skripty pro automatizaci seznamů souborů a třídění obsahu souborů?


Linux
  1. Najít největší soubory nebo adresáře?

  2. Jak třídit soubory podle jejich oprávnění pomocí Ls?

  3. Bash Script k řazení souborů do abecedních složek na Readynas Duo V1?

  1. Použití případových prohlášení v Bash

  2. Použití rsync k synchronizaci souborů

  3. Jak třídit soubory v Linuxu pomocí příkazu Sort

  1. Pole v Bash nenalezeno

  2. Vytváření dočasných souborů v bash

  3. Přeneste soubory pomocí lftp v bash skriptu