代码之家  ›  专栏  ›  技术社区  ›  LandonSchropp

管道回波输出到xargs

  •  3
  • LandonSchropp  · 技术社区  · 7 年前

    我正试图通过管道列出一系列价值观 xargs . 下面是一个简单的例子:

    echo "Hello Hola Bonjour" | xargs -I _ echo _ Landon
    

    我希望它输出以下内容:

    Hello Landon
    Hola Landon
    Bonjour Landon
    

    相反,命令输出如下:

    Hello Hola Bonjour Landon
    

    我错过了什么?

    3 回复  |  直到 7 年前
        1
  •  5
  •   choroba    7 年前

    -I man xargs

    printf 'Hello Hola Bonjour' | xargs -d' ' -I _ echo _ Landon
    

    \0 -0

    printf '%s\0' Hello Hola Bonjour | xargs -0 -I _ echo _ Landon
    
        2
  •  2
  •   Michael C. Chen    7 年前

    echo "Hello Hola Bonjour" | sed -e 's/ /\n/g' | xargs -L 1 -I _ echo _ Landon
    

    Hello Landon
    Hola Landon
    Bonjour Landon
    

    seq 1 7 | xargs echo
    

    1
    2
    3
    4
    5
    6
    7
    

      1 2 3 4 5 6 7
    

    seq 1 7 | xargs -L 1 echo
    

    # be absolutely sure the values the for loop iterates over is well sanitized to avoid glob expansion of the *.
    for i in Hello Hola Bonjour
    do
      if [ "$i" = "Hello" ]
      then
        echo "$i Landon, language detected as English!"
      else
        echo "$i Landon, language detected as non English."
      fi
    done
    
        3
  •  0
  •   Raphael Facredyn    7 年前

    here

    echo -n "Hello Hola Bonjour" | xargs -d' ' -I _ echo _ Landon
    
    推荐文章