Je souhaite ajouter un alias à une commande dans mon .bashrc
fichier, comme dans cet exemple :
alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"
Mais je voudrais spécifier le nrow
variable lorsque je lance la commande depuis le terminal. Par exemple :
take_row 1
–> le script prend la première ligne
take_row 20
–> le script prend la 20ème ligne
Comment puis-je écrire dans la commande quelque chose comme <command> | <read nrow user input>
, etc. ?
Réponse acceptée :
Utilisez une fonction au lieu d'un alias, auquel cas vous pouvez faire référence à des paramètres positionnels tels que $1
, etc.
take_row () {
local nrow="$1"
cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}
Dans ce cas particulier, vous pouvez également aborder l'utilisation inutile de cat :
take_row () {
local nrow=$1
awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}
… et rendez-le encore plus court en supprimant le code inutile :
take_row () {
local nrow=$1
awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}