cron/crontab을 통해 bash 스크립트를 실행할 수 없습니다.

cron/crontab을 통해 bash 스크립트를 실행할 수 없습니다.

다음 cmd가 있습니다 extract.sh.

터미널에서 "ABC123"을 검색하여 작동하고 "ABC123"을 찾으면 orig.txt나머지를 출력합니다.result.txt

불행하게도 cron/crontab을 통해 스크립트를 실행하면 "more" 명령을 무시/건너뛰고 orig.txt를 result.txt로 출력하는 것 같습니다.

도움을 주시면 감사하겠습니다.

---------extract.sh--------------- ------------------------------------------------

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. $HOME/.profile
more +/"ABC123" orig.txt > result.txt

--------크론탭--------------- - ------------------------------------------------

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * /root/extractpdf_v3.sh
* * * * * /bin/bash /root/extract.sh

답변1

sed대신 을 사용할 수 있습니다 more. 주석에서 언급한 것처럼 특정 단어와 일치하는 줄 뒤에 파일 내용이 필요합니다. 예를 들어 입력 파일은 다음과 같습니다.

Test before
Test match
Test after

주문하다:

sed -n -e '/match/,$p'

산출:

Test match
Test after
  • -n스크립트를 실행한 후 각 줄을 인쇄하는 sed의 기본 동작을 비활성화합니다.
  • -esed에 스크립트를 지정하고,
  • /match/,$파일 끝($)까지 "일치" 정규식(예: grep)과 일치하는 첫 번째 줄을 나타내는 주소(줄) 범위 선택입니다.
  • p현재 행을 인쇄하는 인쇄 명령입니다.

자세한 내용은 원래 답변을 참조하세요https://stackoverflow.com/questions/7103531/how-to-get-the-part-of-file-after-the-line-that-matches-grep-expression-first

관련 정보