Bash: 파일 목록을 다른 파일로 분할하시겠습니까?

Bash: 파일 목록을 다른 파일로 분할하시겠습니까?

내 디렉터리에 여러 파일이 있습니다. 예를 들면 다음과 같습니다.

data1.dat
data2.dat
....
data24678.dat    

다른 코드를 실행하려면 파일 이름이 포함된 텍스트 파일이 필요하지만 각 텍스트 파일을 50개의 파일로 분할해야 합니다. 예를 들면 다음과 같습니다. File1.txt :

/PATH/OF/FILE/data1.data
/PATH/OF/FILE/data2.data
/PATH/OF/FILE/data3.data
......
/PATH/OF/FILE/data50.data

파일 2.txt:

/PATH/OF/FILE/data51.data
/PATH/OF/FILE/data52.data
/PATH/OF/FILE/data53.data
......
/PATH/OF/FILE/data100.data

어떤 아이디어가 있나요? ? 나는 노력하고 있습니다 :

ls -1 | xargs -n 50 >> File1.txt

하지만 xargs 명령에서 각 "항목"을 누가 선택했는지는 알 수 없습니다. 감사해요! !

답변1

ls -1 | split --lines=10

파일을 동일한 디렉토리에 배치하십시오. 이는 다음을 통해 피할 수 있습니다.

ls -1 | (cd /where/ever; split --lines=10)

또는 다른 파일 이름을 사용하십시오.

ls -1 | split --lines=10 /dev/stdin /path/to/splitfile.

답변2

다음을 시도해 보십시오( split대부분의 Linux 배포판에서 기본값인 GNU를 사용하여):

ls |
  sed "s:^:$(pwd)/:" |
  split -dl 50 --additional-suffix=.txt - /path/to/dest/File

관련 정보