数百行のディレクトリパスを含むfull_path.txtというファイルがあります。これで、私が作成したシェルスクリプトを変更し、必要なものを見つけて任意のパスに移動できます。コードに移動して変更して保存し、再度実行して必要な行に到達し、必要なものをgrepするのは面倒です。
スクリプトの最後に何かを追加して、自動的にその行に移動してgrepする方法があるかどうか疑問に思います。
私がしなければならないのは、FNRを私が望む行に変更することだけです。しかし、実行時にこれを行う方法はありますか?
たとえば、15行目に移動するには、次のように入力します。gotoline.sh 15
これはこれまで私のコードです
line=$(awk 'FNR==1' full_path.txt)
cd "${line}"
grep -a "RESULT:" console_debug.log > Result.txt
答え1
Awk
入力パラメータ/変数をスクリプトに渡す機能(-v
オプションを介して):
#!/bin/bash
line=$(awk -v l_num=$1 'NR == l_num' full_path.txt)
...
上記の方法では、デフォルトのシェルスクリプトを実行するときに必要なパラメータを渡すことができます。
gotoline.sh 15
15
シェルスクリプトパラメータとして渡す場所$1