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
}