Linux/Bash中如何将大文件拆分为带前缀的小文件

Linux/Bash中如何将大文件拆分为带前缀的小文件,linux,bash,split,Linux,Bash,Split,我在Linux中有一个名为test的文件。现在我想把测试分成10个小文件 test文件有1000多个表名。我希望小文件的行数相等,最后一个文件的表名数可能相同,也可能不同 我想要的是,我们可以在调用Linux终端中的split命令时,为分割文件添加前缀 示例: test_xaa test_xab test_xac and so on.............. 这在Linux中是可能的吗 我发誓斯普利特是自己干的,但令我惊讶的是,它没有 要获取前缀,请尝试以下操作: for x in /pat

我在
Linux
中有一个名为
test
的文件。现在我想把
测试
分成10个小文件

test
文件有1000多个表名。我希望小文件的行数相等,最后一个文件的表名数可能相同,也可能不同

我想要的是,我们可以在调用
Linux
终端中的
split
命令时,为分割文件添加前缀

示例:

test_xaa test_xab test_xac and so on..............

这在Linux中是可能的吗

我发誓斯普利特是自己干的,但令我惊讶的是,它没有

要获取前缀,请尝试以下操作:

for x in /path/to/your/x*; do 
    mv $x your_prefix_$x
done

我用下面的陈述解决了我的问题

split -l $(($(wc -l < test.txt )/10 + 1)) test.txt test_x
split-l$($(wc-l

有了这个,我能够得到期望的结果

不清楚,小文件有相同数量的表意味着什么?显示测试文件的示例片段,它可以分为2个块(在2个文件中)google
csplit
我最初误读了这个问题,但我相信我更新的答案是您所需要的。@Active_user-您能更新问题以提供示例数据吗。。。例如,最好知道这些记录是否定义了分隔符。如果是这样,请查看
--separator
split操作符。如果您正在运行
split
version
8.22
它支持
-n
,它可以替换
-l$($(wc-l
。然后该命令将被拆分为
split-n10 test.txt test\u x
@alvits No it can't,这将使行分开。@123-你是对的。我忘了把
-nl/10
。它应该是
split-nl/10 test.txt test\u x
。@alvits也不会做同样的事情,虽然它保留了完整的行,但它会根据大小而不是行数拆分文件。@alvits偶数-n r/10不会给出像我的答案那样的结果