Vzhledem k tomu, že již bylo zjištěno, že operační systém Linux je špičkou ve všech činnostech s počítačem, prostřednictvím četných tipů a článků pro příkazový řádek Linuxu, na které jste na této stránce narazili.
Je čas dále zvýšit reputaci tohoto operačního systému. V rámci správy souborů Linuxu se podíváme na způsoby, jak zamíchat řádky v souboru umístěném v prostředí operačního systému Linux.
Promíchání řádků v souboru v prostředí operačního systému Linux může mít dva přístupy. V rámci prvního přístupu můžete chtít zamíchat/přeuspořádat řádky v cílovém souboru, aby se zobrazily v určitém požadovaném pořadí. V takovém případě je vyvolán příkaz řazení.
V rámci přístupu 2 si neuvědomujete pořadí, ve kterém by se měly objevit poslední řádky v cílovém souboru. V takových případech příkaz shuf je vyzván.
Tento článek nás provede různými linuxovými technikami náhodného míchání řádků v souboru v Linuxu.
Prohlášení o problému
Budeme muset vytvořit ukázkový textový soubor s několika řádky, na který budeme odkazovat při implementaci a spouštění různých příkazů pro míchání v Linuxu, o kterých se bude diskutovat.
$ sudo nano sample_file.txt
Pro očíslované zobrazení celého tohoto souboru můžeme použít příkaz cat:
$ cat -n sample_file.txt
příkaz cat výstup nám říká, že máme co do činění s textovým souborem s celkem 15 linky. Také, jak jste si možná všimli, řádky 12 do 14 se opakují. Výskyt těchto tří řádků nám pomůže pochopit, jak fungují různé příkazy pro míchání.
Přehazování řádků pomocí příkazu Shuf v Linuxu
Od GNU Coreutils hostitelé balíčku shuf příkaz, měl by být standardně nainstalován ve vaší distribuci operačního systému Linux. Hlavní funkce shuf příkaz je generovat náhodné permutace na základě vstupu, který je do něj přiváděn.
Pracovní mechanismus shuf příkaz je následující; nejprve načte vstupní data do paměti a před pokračováním v provádění odkazuje, zda je volná paměť větší než velikost vstupních dat/souboru.
Jeho syntaxe je následující:
$ shuf [TARGET_INPUT_FILE]
V našem případě bude jeho implementace následující:
$ shuf sample_file.txt
Jak můžete vidět, podařilo se nám náhodně zamíchat řádky v našem ukázkovém textovém souboru. Pokud spustíte shuf příkaz, znovu a znovu, pokaždé dostanete jiný výsledek:
$ shuf random_file.txt
Použijte příkaz Sort k promíchání řádků v Linuxu
Zatímco třídění příkaz se používá hlavně k přeskupení řádků souboru specifickým způsobem, můžeme tyto řádky souboru náhodně zkombinovat, pokud zkombinujeme třídění pomocí -R
možnost.
$ sort -R sample_file.txt
Spouštění příkazu znovu a znovu by mělo pokaždé přinést jiné výsledky.
Použijte příkaz Awk k promíchání řádků souborů v systému Linux
Podle jeho manuálové stránky pro Linux (man awk ), awk je dokonalý programovací jazyk pro skenování a zpracování textu. Abyste však porozuměli jeho použití při míchání řádků, budete se muset trochu seznámit s programovacími koncepty, jako jsou proměnné, smyčky (cykly while) a příkazy (příkaz if), jak je ukázáno níže:
awk 'BEGIN{srand() } { lines[++d]=$0 } END{ while (1){ if (e==d) {break} RANDOM = int(1 + rand() * d) if ( RANDOM in lines ){ print lines[RANDOM] delete lines[RANDOM] ++e } } }' sample_file.txt
Nyní nám vyhovuje míchání řádků v souboru v Linuxu.