首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将引号添加到参数的实用程序。

问将引号添加到参数的实用程序。
EN

Unix & Linux用户
提问于 2020-01-07 05:06:58
回答 2查看 453关注 0票数 0

我有一个问题,可以用实用程序来解决,把引号添加到参数中,输出到标准中。我为"linux实用程序添加引号到参数“做了一个web搜索,但是没有发现任何相关的内容。有艾米吗?(需要将其与xargs配对)

P.S.原版(见结尾处的快速理解):

在查找上运行查找

EN

回答 2

Unix & Linux用户

发布于 2020-01-07 07:27:35

我看不出这对解决其他问题有什么帮助,但是如果您确实需要一个命令来打印它的参数,该命令由一个空格字符分隔,整个参数由"包围并以换行符结尾,那么您可以使用awk:

代码语言:javascript
复制
awk -- '
  BEGIN{
    printf "\""
    for (i = 1; i < ARGC; i++) printf "%s", (i == 1 ? "" : " ") ARGV[i]
    print "\""
  }' arg1 "arg 2" 'arg 3' 'arg "4"'

指纹:

代码语言:javascript
复制
"arg1 arg 2 arg 3 arg "4""
票数 1
EN

Unix & Linux用户

发布于 2020-01-07 06:58:43

我最初的问题得到了@muru建议的正确解决方案,不过,我现在所写的引用C实用程序(我的系统有quote命令,但它只引用了第一个参数,忽略了其他参数),可以像往常一样使用gcc quoteit.c -o quoteit && chmod +x quoteit在当前文件夹的魁teit.c中构建提供的代码:

代码语言:javascript
复制
#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; 
}
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/560747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档