Bonjour les amis. Dans cet article, vous apprendrez à utiliser la commande choose sous Linux. Nous avons testé ce tutoriel sur Debian 11, mais il devrait fonctionner sur Ubuntu 20.04 et dérivés.
Qu'est-ce que la commande choose ?
La commande choose est un outil créé avec Rust qui est destiné à être une alternative plus robuste et plus facile à utiliser au cut
et awk
commandes.
Grâce à cette commande, nous pourrons sélectionner des mots ou des plages de mots à partir d'une chaîne ou d'un fichier entier. Cela le rend idéal pour les scripts et en particulier les programmes tiers qui nécessitent de travailler avec des chaînes de caractères.
Comme il est créé avec Rust, nous pouvons l'installer sans problème sous Linux. En plus de cela, c'est un outil léger et son installation est simple à faire.
Certaines fonctionnalités de la commande choose sont :
- Syntaxe de sélection de champ concise similaire aux tranches de liste de Python
- Indexation négative à partir de la fin de ligne
- Index de début/fin facultatif
- Zéro indexé
Alors allons-y.
Installer la commande Choose
Étant un outil créé avec Rust, nous pourrons installer en utilisant cargo
. Si Rust est déjà installé sur le système, alors vous avez déjà cargo
aussi.
Sinon, vous pouvez l'installer en tant que package séparé de Rust. Concernant Debian et Ubuntu, vous pouvez ouvrir un terminal et avant de l'installer, mettre à jour le système.
sudo apt update
sudo apt upgrade
Vous pouvez maintenant installer cargo
en courant
sudo apt install cargo
Avec cargo
installé, nous pouvons installer choisir. Pour ce faire, exécutez simplement
cargo install choose
À la fin de l'installation, vous serez invité à ajouter le chemin d'installation au PATH afin de pouvoir l'utiliser dans le terminal.
Dans mon cas, j'ai exécuté cette commande
export PATH=$PATH:/home/angelo/.cargo/bin
Modifiez-le pour le vôtre et maintenant, vérifiez la version de Choose.
choose --version
Sortie :
choose 1.3.3
De cette façon, nous pourrons l'utiliser sans problème.
Utilisation de la commande de choix
La commande choisir permet de sélectionner un ou plusieurs mots d'une chaîne de texte ou d'un fichier selon leur position. En plus de cela, cela fonctionne également avec des plages.
Pour mieux l'expliquer, considérez ce texte.
Hi, welcome to unixcop. Nice to meet you. So, have a nice day
Si dans ce texte, nous voulons montrer le premier mot et le sixième mot.
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 5
Sortie :
Hi, to
N'oubliez pas que choose commence le décompte à 0. C'est-à-dire 0
est le premier mot de la chaîne.
Pour obtenir une plage, utilisez alors :
. Par exemple,
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 1:6
Sortie :
welcome to unixcop. Nice to meet
Dans ce cas, j'ai imprimé du deuxième au septième mot.
Semblable à Python, choose prend une partie de sa syntaxe pour définir les derniers mots de la chaîne. Donc -1
fait référence au dernier mot, -2
jusqu'à l'avant-dernier mot et ainsi de suite.
Par exemple :
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 2:-1
Dans ce cas, nous affichons du troisième mot jusqu'à la fin. Le résultat est :
to unixcop. Nice to meet you. So, have a nice day
Vous pouvez également sélectionner différents mots et plages
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 10 4:-3 -1
Donc, j'ai sélectionné, le premier mot, le onzième, le cinquième jusqu'à l'avant-dernier et le dernier mot. Le résultat est :
Hi, a Nice to meet you. So, have a day
La commande choose est également utile pour gérer .csv
dossier. Dans ce cas, l'usage est le même mais s'il est délimité par ,
vous devez ajouter le -f
option. Par exemple,
cat [csv_file] | choose -f ',' 0:2
De cette façon, vous dites choisir que le délimiteur est ,
.
Si vous voulez que la sortie d'écran soit plus lisible, vous pouvez utiliser le -o
option avec la touche de tabulation.
cat [csv_file] | choose -f ',' -o '0 3
C'est aussi simple que cela.
Conclusion
Dans cet article, nous vous avons présenté un outil important comme choisir. Il est destiné à être une alternative solide au awk
et cut
commandes mais en simplifiant tout.