如何使用bash中的部门执行此计数线操作



我的目标是将文件拆分为块。假设我有一个带有100行的文件。我想使用bash脚本将其分为4个块。我这样做的方式是计算文档中有多少行。然后,我指定要分为的文档数量。我进行计算以获取Chucks的行号,然后将split命令与-l选项一起使用。

我尝试了:

    echo "Please specify the number of chunks you want to split"
    read chunks
    echo "Preparing the input files......................"
    echo "Please Enter your input file directory"
    read inputDir
    echo "Spliting the input file into chunks"
    split -l=$(($((wc -l $inputDir))/$(($chunks-1)))) $inputDir

,它给了我这个错误:(说我在这里输入5,想获得4个带有25行的文件)

    syntax error: operand expected (error token is "/3")

wc输出其计数文件的名称。为了防止这种情况,请使用重定向:

$(( $(wc -l < $inputDir) / (chunks - 1) ))

$inputFile是一个更好的变量名称,除非您真的想处理目录。但是,您无法使用wc中的目录中的行计数。

还要注意,您不需要嵌套算术扩展$((...))

此外,您的split可能支持-n选项:

-n,-number =块

生成块输出文件。

相关内容

  • 没有找到相关文章

最新更新