gpt4 book ai didi

linux - 使用带有特殊字符的 xargs

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:34 28 4
gpt4 key购买 nike

我有以下问题。得到一个文件,其中包含 FS 的某些路径/文件。出于某种原因,这些确实包括所有特殊字符,例如空格、单引号/双引号,有时甚至是版权 ASCII。

我需要运行文件的每一行并将其传递给另一个命令。

到目前为止我尝试的是:

<input_file xargs -I % command %

在我从 xargs 收到这条消息之前一直在工作

xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

但是使用这个选项对我来说根本不起作用

xargs: argument line too long

有没有人有解决方案可以处理特殊字符。不必与 xargs 一起使用,但我需要按原样将行传递给命令。

非常感谢。

最佳答案

您应该使用 \0 NULL 字符分隔文件名以进行处理。

这可以用

find . <args> -print0 | xargs -0

或者如果您必须使用文件名处理文件,请将“\n”更改为“\0”,例如

tr '\n' '\0' < filename | xargs -0 -n1 -I% echo "==%=="

-n 1 表示,

-n max-args Use at most max-args arguments per command line.

并且您应该使用 "%" 引号将 %

括起来

关于linux - 使用带有特殊字符的 xargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426342/

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