【发布时间】:2018-06-25 11:08:19
【问题描述】:
有没有办法将 GNU split --filter 与自定义 shell 函数一起使用,例如
my_func () {
echo $1
}
split -d 10 INPUT_FILE chunk_ --filter="my_func $FILE$"
我希望输出的
chunk_00
chunk_01
...
当然,自定义函数中的回声只是为了在这里表达我的问题,在我的具体情况下,自定义函数创建了一个脚本,该脚本使用来自拆分的块作为输入。
似乎 GNU shell 只接受 --filter 内的标准 shell 命令。
有什么聪明的办法吗?
【问题讨论】:
-
命令
split -d INPUT_FILE chunk_输出预期的文件格式。我不清楚您是想使用--filter修改文件名还是想对每个块执行一些操作。在这两种情况下,请更新您的问题。 -
只需将您的函数放入脚本中即可。
-
真正的函数执行构建一个shell脚本,其中块用作另一个命令的参数。
-
如果我将函数放入脚本中,我将需要更新 PATH,这会破坏我试图实现的易用性。
-
您可以在 filter 参数中为命令添加相对路径或绝对路径的前缀。无需更新
PATH。即--filter="/some/path/my_func.sh $FILE"工作得很好。