我有一个问题,可以用实用程序来解决,把引号添加到参数中,输出到标准中。我为"linux实用程序添加引号到参数“做了一个web搜索,但是没有发现任何相关的内容。有艾米吗?(需要将其与xargs配对)
P.S.原版(见结尾处的快速理解):
发布于 2020-01-07 07:27:35
我看不出这对解决其他问题有什么帮助,但是如果您确实需要一个命令来打印它的参数,该命令由一个空格字符分隔,整个参数由"包围并以换行符结尾,那么您可以使用awk:
awk -- '
BEGIN{
printf "\""
for (i = 1; i < ARGC; i++) printf "%s", (i == 1 ? "" : " ") ARGV[i]
print "\""
}' arg1 "arg 2" 'arg 3' 'arg "4"'指纹:
"arg1 arg 2 arg 3 arg "4""发布于 2020-01-07 06:58:43
我最初的问题得到了@muru建议的正确解决方案,不过,我现在所写的引用C实用程序(我的系统有quote命令,但它只引用了第一个参数,忽略了其他参数),可以像往常一样使用gcc quoteit.c -o quoteit && chmod +x quoteit在当前文件夹的魁teit.c中构建提供的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
if (argc ==2 && (!strcmp(argv[1],"-h") || !strcmp(argv[1],"--help")))
{
printf("The program surrounds set of arguments with double quotes\n");
printf("Example: quoteit 12 23 outputs \"12 23\"\n");
return 0;
}
//printf("%d\n", argc);
printf("\"");
for (int i=1; i< argc; i++)
{
printf("%s", argv[i]);
if (u<args-1) printf(" ");
}
printf("\"");
return 0;
}https://unix.stackexchange.com/questions/560747
复制相似问题