Dobrý den, přátelé. V tomto příspěvku se dozvíte, jak používat příkaz select v Linuxu. Tento tutoriál jsme testovali na Debianu 11, ale měl by fungovat na Ubuntu 20.04 a jeho derivátech.
Co je to příkaz select?
Příkaz select je nástroj vytvořený pomocí Rust, který má být robustnější a snáze použitelnou alternativou k cut
a awk
příkazy.
Díky tomuto příkazu budeme moci vybírat slova nebo rozsahy slov z řetězce nebo celého souboru. Díky tomu je ideální pro skripty a zejména programy třetích stran, které vyžadují práci se znakovými řetězci.
Jelikož je vytvořen s Rustem, můžeme jej bez problémů nainstalovat v Linuxu. Kromě toho je to lehký nástroj a jeho instalace je jednoduchá.
Některé funkce příkazu select jsou:
- Stručná syntaxe výběru polí podobná řezům seznamu v Pythonu
- Negativní indexování od konce řádku
- Volitelný počáteční/koncový index
- Nulový index
Tak jdeme na to.
Nainstalujte příkaz Choose
Protože se jedná o nástroj vytvořený pomocí Rustu, budeme moci nainstalovat pomocí cargo
. Pokud již máte Rust nainstalovaný v systému, pak již máte cargo
také.
V opačném případě jej můžete nainstalovat jako samostatný balíček z Rustu. O Debianu a Ubuntu můžete otevřít terminál a před jeho instalací aktualizovat systém.
sudo apt update
sudo apt upgrade
Nyní můžete nainstalovat cargo
spuštěním
sudo apt install cargo
S cargo
nainstalován, můžeme nainstalovat vybrat. Chcete-li tak učinit, stačí spustit
cargo install choose
Na konci instalace budete vyzváni k přidání instalační cesty do PATH, abyste ji mohli použít v terminálu.
V mém případě jsem spustil tento příkaz
export PATH=$PATH:/home/angelo/.cargo/bin
Upravte jej na svůj a nyní zkontrolujte verzi Vybrat.
choose --version
Výstup:
choose 1.3.3
Tímto způsobem jej budeme moci bez problémů používat.
Použití příkazu select
Příkaz select nám umožňuje vybrat jedno nebo několik slov z textového řetězce nebo souboru podle jejich pozice. Kromě toho pracuje také s rozsahy.
Abyste to lépe vysvětlili, zvažte tento text.
Hi, welcome to unixcop. Nice to meet you. So, have a nice day
Pokud v tomto textu chceme zobrazit první slovo a šesté slovo.
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 5
Výstup:
Hi, to
Pamatujte, že volba začíná počítání na 0. Tedy 0
je první slovo v řetězci.
Chcete-li získat rozsah, použijte :
. Například,
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 1:6
Výstup:
welcome to unixcop. Nice to meet
V tomto případě jsem tiskl od druhého slova k sedmému.
Podobně jako v Pythonu, select využívá část své syntaxe k definování posledních slov řetězce. Takže -1
odkazuje na poslední slovo, -2
na předposlední slovo a tak dále.
Například:
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 2:-1
V tomto případě zobrazujeme od třetího slova do konce. Výsledek je:
to unixcop. Nice to meet you. So, have a nice day
Můžete také vybrat různá slova a rozsahy
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 10 4:-3 -1
Vybral jsem tedy první slovo, jedenácté, páté až předposlední a poslední slovo. Výsledek je:
Hi, a Nice to meet you. So, have a day
Příkaz select je také užitečný pro práci s .csv
soubor. V tomto případě je použití stejné, ale pokud je odděleno ,
musíte přidat -f
volba. Například,
cat [csv_file] | choose -f ',' 0:2
Tímto způsobem určíte, že oddělovač je ,
.
Pokud chcete, aby byl výstup na obrazovce čitelnější, můžete použít -o
pomocí tabulátoru.
cat [csv_file] | choose -f ',' -o '0 3
Je to tak jednoduché.
Závěr
V tomto příspěvku jsme vám představili důležitý nástroj, jako je výběr. Má být solidní alternativou k awk
a cut
příkazy, ale vše zjednodušovat.