我使用下面的命令来吐出文件
split -l 100 date.csv date.csv
文件是分割的,如下所示
date.csvaa
date.csvab
date.csvac
date.csvad
date.csvae
我想重命名文件,如下所示。
date_1.csv
date_2.csv
date_3.csv
date_4.csv
date_5.csv
请帮助
答案 0 :(得分:5)
这一行是一次性完成的:
split --numeric-suffixes=1 --additional-suffix=.csv -l100 data.csv data_
小测试(来自stdin):
kent$ split --version|head -1
split (GNU coreutils) 8.22
kent$ l
total 0
kent$ seq 10|split --numeric-suffixes=1 --additional-suffix=.csv -l2 - data_
kent$ l
total 20K
-rw-r--r-- 1 kent kent 4 Mar 14 11:13 data_01.csv
-rw-r--r-- 1 kent kent 4 Mar 14 11:13 data_02.csv
-rw-r--r-- 1 kent kent 4 Mar 14 11:13 data_03.csv
-rw-r--r-- 1 kent kent 4 Mar 14 11:13 data_04.csv
-rw-r--r-- 1 kent kent 5 Mar 14 11:13 data_05.csv
答案 1 :(得分:3)
有很多方法可以解决这个问题。其他答案提供了一种方法,只需将参数传递给split
- 但是ubuntu 12.04上的split版本似乎不支持这些答案中使用的参数。
这是一个。这将拆分文件并使用split
上的默认选项为文件名添加x
前缀。然后它按顺序列出文件并根据需要重命名。
split -l 100 date.csv
i=1
for x in `ls x* | sort`
do
mv $x date_$i.csv
i=$(($i+1))
done