텍스트 파일에서 특정 줄을 명령으로 실행하는 방법은 무엇입니까?

텍스트 파일에서 특정 줄을 명령으로 실행하는 방법은 무엇입니까?

때로는 쉘 스크립트에서 단일 명령을 실행해야 할 때도 있습니다.

나는 sed -n 'line_num p'그 줄을 인쇄할 수 있다는 것을 이미 알고 있다. 그런데 명령으로 출력된 특정 줄을 어떻게 실행할 수 있나요?

답변1

이 시도:

sed -n 'line_num p' | bash

또는 명령에 공백이 포함되어 있지 않으면

"$(sed -n 'line_num p')"

답변2

이 작업을 대화형으로 수행하면 bash 기록에 다음 줄을 쓸 수 있습니다.

history -s "$(sed -n 'line_num p')"

그런 다음 press는 Enterreadline 버퍼에 줄을 삽입하고 실행합니다. 이렇게 하면 너무 늦기 전에 줄을 훑어볼 수 있는 기회가 제공됩니다.

답변3

넌 할 수있어...

{ head -n"$((NUM-1))"; IFS= read -r line; } </path/to/script >/dev/null
eval "$line"

$NUM이는 쉘 변수의 스크립트 행만 가져오고 $line이를 현재 쉘의 명령으로 평가합니다.

또 다른 접근 방식은 다음과 같습니다.

 </path/to/script sed "${NUM}q;d" >/tmp/"$$"
 . /tmp/"$$" ; rm /tmp/"$$"

답변4

Bash에서는 다음 명령을 실행할 수 있습니다.

for line in $(cat file.txt); do command $line; done

관련 정보