gpt4 book ai didi

command-line - 可以更改 xargs 的默认分隔符吗?

转载 作者:行者123 更新时间:2023-12-04 03:07:33 25 4
gpt4 key购买 nike

我想要以下行为,而不必使用选项明确指定它:

xargs -d '\n'

与大多数命令不同,您不能只使用别名,因为管道无法识别别名(作为旁注,为什么要这样设计?)。我也尝试创建自己的 ~/bin/xargs脚本,但我认为它不像在脚本中读取“$@”作为字符串那么简单。

任何建议如何在默认情况下使分隔符成为换行符?我不想在路径中有空格时出现一堆错误(并且使用 find ... -print0 | xargs -0 有其他不需要的影响)。

更新

我的 shell 脚本尝试是这样的:
/usr/local/bin/xargs -d '\n' "$@"

最佳答案

我测试了 xargs -d '\n' -n1 echo在命令行上,它像宣传的那样工作;将输入分解成单行并回应它。

您可能会被关于变量赋值期间 shell 转义的假设所困扰。例如,如果您的 shell 脚本与此类似:

CMD="xargs -d '\n' -n1 echo"
cat inputfile | $CMD



然后发生错误,因为整个 CMD 字符串周围的双引号保留了分隔符中的单引号和反斜杠。

如果将 xargs 命令括在引号内,则可以将其更改为以下内容(无单引号)

CMD="xargs -d \n -n1 echo"
cat inputfile | $CMD



它可能会根据您的需要运行。

在 CentOS 6.4、xargs 版本 4.4.2 上测试

关于command-line - 可以更改 xargs 的默认分隔符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19204531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com