코드를 수동으로 변경하지 않고 파일의 모든 행으로 이동

코드를 수동으로 변경하지 않고 파일의 모든 행으로 이동

수백 줄의 디렉터리 경로가 포함된 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

관련 정보