
내 질문에 대한 답변을 얻을 수 있도록 파일 이름을 바꾸고 더 자세한 내용을 입력하고 싶었습니다.
crontab에 아래 줄이 있습니다
00 * * * * /home/@@@@/ulimit_nofile_status_20480.sh >> /export/####/$$$$$/ulimit_nofile_status.txt
00 * * * * /home/@@@@/ulimit_nproc_status_20480.sh >> /export/####/%%%%/ulimit_nproc_status.txt
파일 이름을 각각 및 ulimit_nofile_status_20480.sh
로 ulimit_nproc_status_20480.sh
변경 하고 싶습니다 .ulimit_nofile_status_40960.sh
ulimit_nproc_status_40960.sh
즉, 20480을 40960으로 이름을 바꾸고 싶습니다.
아래 명령을 시도했지만 작동하지 않았습니다.
crontab -l | sed 's#/_20480\.#/40960.#' | crontab -
crontab -l | sed 's/\<_20480\>/40960/' | crontab -
"sed -i s//40960/" crontab -e
답변1
정규 표현식이 이상해요. 다음이 작동합니다.
crontab -l | sed 's#_20480\.#_40960.#' | crontab -
귀하의 시도에서는 밑줄 앞에 슬래시가 있어야 했지만 물론 파일에 슬래시가 없으므로 crontab
정규식은 아무것도 일치하지 않았습니다.
당신은 다음 20480
으로 바꾸고 싶다고 말했지만 40960
여러 시도 중 숫자 앞의 밑줄도 제거하려는 것처럼 보입니다. 그것이 맞다면 분명히 교체 문자열에서 삭제하십시오.
나는 당신이 그렇지 않으면 좋은 시도였을 것이라는 것을 sed
인식하지 못한다고 추측합니다.\<
귀하가 시도한 마지막 시도는 유효한 구문에서 지금까지 제거되었기 때문에 의미 있게 언급할 수 없다고 생각합니다. 문자열을 sed -i s//40960/
명령 이름으로 사용하려고 시도하는 것으로 구문 분석하고 인수를 사용 crontab
하여 -l
매개변수로 전달합니다.