我的目录中有几个文件,例如:
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