제가 작성 중인 쉘 스크립트에 분할 명령을 사용하려고 하는데 --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)으로 업데이트하는 것을 고려할 수 있습니다.