我将一个更大的4200万行文件拆分为100000行并将其放入/ dev / shm / split /。
我需要将这些文件拆分为更小的文件1000行。
#!/bin/sh
for f in /dev/shm/split/file.txt.* ;
do
find /dev/shm/split/ -type f -name $f -exec split -l 1000 {} /dev/shm/split/file1.txt. \;
done ;
echo "Split complete."
#!/bin/sh
for f in /dev/shm/split/* ;
do
split -l 1000 {} /dev/shm/split/file1.txt. ;
done ;
echo "Split complete."
#!/bin/sh
while read file in * ;
do
split -l 1000 $file file1.txt.
done ;
echo "Split complete."
Number 1生成了1个通过split命令处理的文件。 2号没有产生任何东西。 3号似乎是通过将光标移到下一行开始处理,但当我使用时检查:
wc -l /dev/shm/split/file1.*
......约3分钟后没有结果。
请帮帮我。非常感谢你!
答案 0 :(得分:2)
#3 with a few changes might work
ls *.txt | while read file
do
echo "Splitting file $file"
split -l 1000 $file $file.
done
echo "Split complete."
答案 1 :(得分:0)
您可以通过
实现这一目标find /dev/shm/split/ -type f -exec split -l 1000 {} {} \;
不需要循环