Bash
在 Bash 的別名中插入使用者定義的變數
我想為
.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
等。take_row () { local nrow="$1" cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}' }
在這種特殊情況下,您還可以解決cat 的無用使用問題:
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 }