변수를 설정하기 위해 서브셸에서 cut 및 sed를 실행할 때 "매개변수 목록이 너무 깁니다"가 나타납니다.

변수를 설정하기 위해 서브셸에서 cut 및 sed를 실행할 때 "매개변수 목록이 너무 깁니다"가 나타납니다.

나는 Python 코드가 포함된 bash 스크립트를 작성했습니다. 내가 하는 일은 파일을 읽고 다음 bash 명령을 사용하여 잘라낸 다음 Python 코드에서 사용할 수 있도록 내보내는 것입니다.

export BWA_compare=$(cut --output-delimiter='' -f1-3 ${BWA_AT}| sed 1d)

문제는 내가 얻는다는 것이다

/bin/cut: Argument list too long
/bin/sed: Argument list too long

작은 파일에는 잘 작동합니다. 수출할 수 있는 수량에 제한이 있나요?

답변1

매개변수 수와 매개변수 조합 길이에는 제한이 있습니다. 이는 균일한 값은 아니지만 시스템에 따라 다릅니다.

일반적으로 이러한 문제는 로 해결될 수 있습니다 xargs.

그런데 제가 보기에는 cut잘못 사용하고 있는 것 같습니다. cut매개변수로는 파일만 필요합니다. ${BWA_AT}파일 목록이 큽니까? Python 코드라면 다음과 같은 것이 필요합니다.

echo "${BWA_AT}" | cut

실제로 파일 목록인 경우 다음과 같은 것이 필요합니다.

echo "${BWA_AT}" | xargs cut

필요한 옵션은 xargs구분 기호에 따라 다릅니다.

관련 정보