내 디렉터리에 여러 파일이 있습니다. 예를 들면 다음과 같습니다.
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