현재 첨부 파일을 나열된 파일에서 텍스트를 추출하는 다른 스크립트로 보내는 작업을 처리하는 공급 업체 제공 소프트웨어를 사용하고 있습니다. 공급 업체가 제공 한 소프트웨어가 파일 이름을 따옴표로 묶지 않으므로 외부 소스에서 공백을 포함하는 파일을받을 때 스크립트가 실패합니다. 즉, 텍스트 추출 스크립트가 실행될 때 공간에서 분리 될 파일 이름을받습니다 추출기 스크립트에 오류를 일으킬 수 있습니다. 공급 업체가 제공 한 소프트웨어는 우리가 편집 할 수 없습니다.파일 이름에 공백이있는 Linux 스크립팅
이 전체 과정은 자동화 된 전송으로 설계되었으므로 임의로 기어에 던져 질 수있는이 렌치가 문제가됩니다.
텍스트 추출기 스크립트에서 간격을 띄우는 이름을 처리합니다.이 스크립트는 우리가 제어 할 수있는 부분이므로 처리해야합니다. 빠른 Google 후에 스크립트의 IFS 값을 변경하는 것이 빠른 해결책이 될 것 같지만 불행히도 스크립트가 확장 기능이 들어오는 데이터를 손상시킨 후에 적용됩니다.
제가 사용하고있는 스크립트는 -e 값, -i 값 및 -o 값을 취합니다. 이 값은 공급 업체가 제공 한 스크립트에서 보내지 만 편집 권한이 없습니다. 내가 인정
#!/bin/bash
usage() { echo "Usage: $0 -i input -o output -e encoding" 1>&2; exit 1; }
while getopts ":o:i:e:" o; do
case "${o}" in
i)
inputfile=${OPTARG}
;;
o)
outputfile=${OPTARG}
;;
e)
encoding=${OPTARG}
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
...
...
<Uses the inputfile, outputfile, and encoding variables>
, 나는 완전히 이해하지 못하고 이것에 조각이있을 수 있습니다, 그것은 간단한 수정 될 수 있지만, 내 최종 목표는 -o 추출 할 수 있도록, -i 및 -e입니다 각 섹션 내의 공백에 관계없이 모두 1 개의 값을 포함합니다. 파일 이름 값을 추출한 후 스크립트를 인용 처리 할 수 있습니다.
내가 거기에 스크립트를 실행하기 전에이 잡을 수있는 방법이 있습니다,하지만 불행히도,이 스크립트는 내가 수정할 수 없습니다 다른 프로그램에서 호출 이해, 그래서가있다 이 스크립트에 입력 된 후 파일 이름의 분할을 처리합니다. – MeanJerry
@MeanJerry 당신은 _actual_ 문제에 관해 아무 말도하지 않았습니다. 당신은 실제로 문제를 보지 않습니까? 질문에서 마치 당신이 걱정하고있는 것처럼 보입니다. – Kusalananda
@MeanJerry, 당신은 ** "먹이를 먹은 후에"나눌 수 없습니다. 분할은 스크립트가 시작되기 전에 스크립트를 호출하는 프로그램에 의해 수행되고 쉘을 실행하는 쉘이 메모리에 저장되기 전에 수행됩니다. –