Vorrei aggiungere un alias a un comando nel mio .bashrc
file, come in questo esempio:
alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"
Ma vorrei specificare il nrow
variabile quando lancio il comando dal terminale. Ad esempio:
take_row 1
–> lo script occupa la prima riga
take_row 20
–> lo script occupa la 20a riga
Come faccio a scrivere all'interno del comando qualcosa come <command> | <read nrow user input>
, ecc.?
Risposta accettata:
Usa una funzione invece di un alias, nel qual caso puoi fare riferimento a parametri posizionali come $1
, ecc.
take_row () {
local nrow="$1"
cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}
In questo caso particolare, puoi anche affrontare l'uso inutile di cat:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}
… e rendilo ancora più breve rimuovendo il codice non necessario:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}