"--numeric-suffixes"는 "split" 인수와 함께 허용되지 않습니다.

"--numeric-suffixes"는 "split" 인수와 함께 허용되지 않습니다.

제가 작성 중인 쉘 스크립트에 분할 명령을 사용하려고 하는데 --numeric-suffixes 플래그를 사용하여 파일 수가 1부터 시작하도록 하고 싶습니다. 나는 시도한다:

split -a 1 -l 2 --numeric-suffixes=1 test.txt

그러나 내가 얻는 결과는 다음과 같습니다.

split: option `--numeric-suffixes' doesn't allow an argument

이 문제를 해결하는 방법을 잘 모르겠지만 --additional-suffix와 같은 다른 플래그를 시도했지만 그것도 작동하지 않습니다. 또한 참고로 -- 플래그를 포함하지 않으면 명령이 올바르게 실행됩니다. 어떤 도움이라도 대단히 감사하겠습니다. (저는 유닉스 초보자이므로 친절하게 대해주세요)


split --version산출split (GNU coreutils) 5.97

split --help설명하다 -d, --numeric-suffixes use numeric suffixes instead of alphabetic.

답변1

이 특별한 경우( -l 2)의 경우 실제 내용 앞에 정확히 두 줄(비어 있는지 여부는 중요하지 않음)을 추가하는 것이 해결책입니다 test.txt. 이 작업은 즉시 수행할 수 있습니다.

그러면 0번째 파일 split -a 1 -l 2 --numeric-suffixes에 추가 줄이 포함됩니다. x0파일을 삭제합니다. 나머지 x*파일은 사용한 파일과 동일합니다 --numeric-suffixes=1.

(printf '\n\n'; cat test.txt) | split -a 1 -l 2 --numeric-suffixes
rm x0

접근 방식은 다양 -l하고 다양한 기대치를 충족하도록 일반화될 수 있습니다 --numeric-suffixes=. 앞에 추가할 줄 수 split와 나중에 삭제할 파일 수를 계산해야 합니다 .

원하는 수의 행을 생성하는 데 사용할 수 있습니다 yes '' | head -n "$number". 루프를 사용하면 원하는 수의 파일을 삭제할 수 있습니다 for.


댓글에서 언급했듯이 split버전이 너무 오래되어 지원되지 않는 경우 --numeric-suffixes=업그레이드를 고려해야 합니다.

답변2

이 분할 버전은 2006-06-24에 출시되었습니다.

--numeric-suffixes 인수를 지원하는 >= 8.16(2012-03-26)으로 업데이트하는 것을 고려할 수 있습니다.

관련 정보