Chtěl bych přidat alias k příkazu v mém .bashrc
soubor, jako v tomto příkladu:
alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"
Ale rád bych specifikoval nrow
proměnnou, když spustím příkaz z terminálu. Jako příklad:
take_row 1
–> skript zabere první řádek
take_row 20
–> skript zabere 20. řádek
Jak napíšu do příkazu něco jako <command> | <read nrow user input>
, atd.?
Přijatá odpověď:
Místo aliasu použijte funkci, v takovém případě můžete odkazovat na poziční parametry, jako je $1
, atd.
take_row () {
local nrow="$1"
cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}
V tomto konkrétním případě můžete také řešit zbytečné použití cat:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}
… a ještě to zkrátit odstraněním nepotřebného kódu:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}