コードを手動で変更せずにファイル内のすべての行に移動する

コードを手動で変更せずにファイル内のすべての行に移動する

数百行のディレクトリパスを含む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

おすすめ記事