将文件从目录中的先前拆分拆分为更小的文件
Split files into even smaller files from a previous split in a directory
我将一个更大的 4200 万行文件拆分为 100000 行并放入 /dev/shm/split/。
我需要将它们分成 1000 行的更小文件。
1 这是我认为可行的方法,但只处理 1 个文件,而不是所有文件:
#!/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."
2 我也试过:
#!/bin/sh
for f in /dev/shm/split/* ;
do
split -l 1000 {} /dev/shm/split/file1.txt. ;
done ;
echo "Split complete."
3 我也试过了:
#!/bin/sh
while read file in * ;
do
split -l 1000 $file file1.txt.
done ;
echo "Split complete."
编号 1 生成了 1 个通过拆分命令处理的文件。 2号没有产生任何东西。数字 3 似乎是通过将光标移到下一行来开始处理的,但是当我检查时使用:
wc -l /dev/shm/split/file1.*
...大约3分钟后没有结果。
请帮帮我。非常感谢!
#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."
您可以通过
实现
find /dev/shm/split/ -type f -exec split -l 1000 {} {} \;
不需要循环
我将一个更大的 4200 万行文件拆分为 100000 行并放入 /dev/shm/split/。
我需要将它们分成 1000 行的更小文件。
1 这是我认为可行的方法,但只处理 1 个文件,而不是所有文件:
#!/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."
2 我也试过:
#!/bin/sh
for f in /dev/shm/split/* ;
do
split -l 1000 {} /dev/shm/split/file1.txt. ;
done ;
echo "Split complete."
3 我也试过了:
#!/bin/sh
while read file in * ;
do
split -l 1000 $file file1.txt.
done ;
echo "Split complete."
编号 1 生成了 1 个通过拆分命令处理的文件。 2号没有产生任何东西。数字 3 似乎是通过将光标移到下一行来开始处理的,但是当我检查时使用:
wc -l /dev/shm/split/file1.*
...大约3分钟后没有结果。
请帮帮我。非常感谢!
#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."
您可以通过
实现find /dev/shm/split/ -type f -exec split -l 1000 {} {} \;
不需要循环