cron을 실행할 때 sort 및 uniq 명령이 예상대로 작동하지 않습니다.

cron을 실행할 때 sort 및 uniq 명령이 예상대로 작동하지 않습니다.

다음은 수동으로 실행하면 올바른 출력을 제공하지만 cron을 사용하여 실행하면 잘못된 출력을 제공하는 스크립트의 일부입니다.

sort < file1.out | uniq -ic |sort -nr> file2.out

명령줄에서 실행하면 대소문자를 무시하고 행 그룹 수가 제공됩니다. 예:

73 /universal/webselfservice/pdf/r60.pdf

cron을 통해 실행하면 개수는 대소문자를 기준으로 구분됩니다. 예를 들면 다음과 같습니다.

47 /universal/webselfservice/pdf/r60.pdf
26 /universal/webselfservice/pdf/R60.pdf

cron 출력이 명령줄 동작과 일치하도록 하려면 어떻게 해야 합니까?

답변1

cron에서 사용되는 로케일은 대화형 환경의 로케일과 다릅니다. 하나는 대소문자를 구분하지 않는 데이터 정렬이고 다른 하나는 그렇지 않습니다.

이는 대화식으로, 서로 결합될 수 있도록 먼저 배치 되고 옆에 sort배치됨을 의미합니다. 그러나 cron이 사용하는 로케일에서는 인접하지 않고 별도로 계산됩니다./universal/webselfservice/pdf/r60.pdf/universal/webselfservice/pdf/R60.pdfuniq -i

원하는 것을 얻는 두 가지 쉬운 방법이 있습니다.

  1. crontab 파일의 환경 변수로 대소문자를 구분하지 않는 로케일을 지정하거나
  2. -f--ignore-case첫 번째 플래그에 (또는) 플래그를 추가합니다 sort.

관련 정보