-p 플래그를 지원하는 분할 버전은 무엇입니까?

-p 플래그를 지원하는 분할 버전은 무엇입니까?

이 명령은 GNU Coreutils 분할, Cern Linux 5(Redhat) 및 BSD(Apple Yosemite 10.10.3) 분할에서는 작동하지 않습니다.

split -p'\0' input.txt

여기서 input.txt는 입니다 masi\0hello\0world. 버전에 대한 일부 의견은 다음과 같습니다.

  • BSD Split에서 이 작업을 수행 split -p'\0' input.txt하고 있지만 OSX Yosemite 10.10.3, GNU bash, 버전 3.2.57(1)-release(x86_64-apple-darwin14)에서는 출력이 없습니다.
  • echo 'masi\0hello' | split -p'\\0'CERN Linux 5(Redhat)의 분할 5.97 GNU 2012에서 이 작업을 수행합니다 . 출력 split: unrecognized option --p\\0'.
  • GNU Coreutils 분할에는 -p 옵션이 없습니다.

-p이 옵션을 어디서 성공적으로 사용했는지 잊어버렸습니다 split. 어떤 버전split 하다깃발을 지지해 -p?

답변1

Mac OS X의 옵션은 -p행이 일치하면 분할됩니다 \0. 그래서 당신은 에 있어야합니다 \0. 죄송합니다. 당신에게 줄 방법이 없습니다. 사용하고 있는 도구가 잘못되었습니다. Perl을 살펴볼 수도 있습니다. NUL 문자를 CTRL- 로 변환하고 A개행 문자를 추가한 다음 -p'^A'( CTRL-- V CTRL) 로 A분할을 사용합니다. 예를 들어 다음을 수행할 수 있습니다.

cat input.txt |perl -p -e 's/\0/\n^A\n/g'| split -p ^A

-어디 ^A, 하지만 그게 중요한지는 잘 모르겠습니다.CTRLA

관련 정보