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>etcのようなものをどのように書きますか?

ベストアンサー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
}

おすすめ記事