无需手动更改代码即可转到文件中的任何行

无需手动更改代码即可转到文件中的任何行

我有一个名为 full_path.txt 的文件,其中有几百行目录路径。现在我可以通过修改我编写的 shell 脚本并 grep 我需要的内容来转到任何路径。我发现转到代码、更改它、保存它然后再次运行它以到达所需的行并 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)
...

通过上述方法,您可以在运行主 shell 脚本时传递所需的参数:

gotoline.sh 15

15将作为 shell 脚本参数传递到哪里$1

相关内容