如何管道Linux拆分命令?

时间:2017-02-23 12:26:35

标签: linux split pipe

我在Linux CLI上有点无用,我试图运行以下命令来随机排序,然后拆分一个带有输出文件前缀的文件' out' (一个输出文件将有50行,另一个输出文件将包含其余部分):

if(polyLayer)
{
    map.removeLayer(polyLayer); // remove the old polygon...
}
polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map); // ...then add the new polygon

我收到错误

sort -R somefile  | split -l 50 out

这可能是因为split的第三个参数应该是它的输入文件。如何将排序结果传递给分割? TIA !!

3 个答案:

答案 0 :(得分:5)

-用于stdin:

sort -R somefile  | split -l 50 - out

来自man split

  

将固定大小的INPUT输出到PREFIXaa,PREFIX,...;默认大小为1000行,默认PREFIX为“x”。没有          INPUT,或当INPUT为 - 时,读取标准输入。

允许-指定输入是stdin 是许多UNIX实用程序遵循的惯例。

答案 1 :(得分:3)

out被解释为输入文件。您可以使用一个短划线表示来自STDIN的阅读:

sort -R somefile | split - -l 50 out

答案 2 :(得分:0)

对于像mac os这样的POSIX系统,不接受-参数,您需要完全省略文件名,并让它生成自己的名称。

sort -R somefile | split -l 50