텍스트 파일에서 특정 줄을 명령으로 실행하려면 어떻게해야합니까? p’그 줄을 인쇄 할

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

이미 sed -n 'line_num p'그 줄을 인쇄 할 수 있다는 것을 알고 있습니다. 그러나 특정 줄을 명령으로 인쇄 한 exec를 어떻게 실행할 수 있습니까?



답변

이 사람을보십시오 =) :

sed -n 'line_num p' | bash

또는

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


답변

이것을 대화식으로하는 경우 bash 기록에 줄을 쓸 수 있습니다.

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

그런 다음을 눌러 Enter행을 판독 선 버퍼에 삽입하고 실행하십시오. 너무 늦기 전에 줄을 볼 수있는 기회를 제공합니다.


답변

넌 할 수있어…

{ 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/"$$"


답변

vim (Linux의 경우 vi)을 사용하여 스크립트를 편집하고 있습니까? vi에서 맵핑을 추가하십시오.

:nmap <F4> Y:!<C-R>"<C-H><CR>

그리고 vi에서 F4 키를 누르면 재미있는 줄에 있습니다.


답변

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

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


답변