我想为文件中的命令添加别名.bashrc
,如下例所示:
alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"
但我想nrow
在从终端启动命令时指定变量。举个例子:
take_row 1
--> 脚本占据第一行
take_row 20
--> 脚本占用第 20 行
如何在命令中写入诸如<command> | <read nrow user input>
等之类的内容?
答案1
使用函数而不是别名,在这种情况下您可以引用位置参数,例如$1
等。
take_row () {
local nrow="$1"
cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}
在这种特殊情况下,您还可以解决对猫的无用利用:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}
...并通过删除不需要的代码使其变得更短:
take_row () {
local nrow=$1
awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}