Me gustaría agregar un alias a un comando en mi .bashrc
archivo, como en este ejemplo:
alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"
Pero me gustaría especificar el nrow
variable cuando ejecuto el comando desde la terminal. Como ejemplo:
take_row 1
–> el script toma la primera fila
take_row 20
–> el script ocupa la fila 20
¿Cómo escribo dentro del comando algo como <command> | <read nrow user input>
, etc?
Respuesta aceptada:
Use una función en lugar de un alias, en cuyo caso puede hacer referencia a parámetros posicionales como $1
, etc.
take_row () {
local nrow="$1"
cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}
En este caso particular, también puede abordar el uso inútil de cat:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}
… y hazlo aún más corto eliminando el código innecesario:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}