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

如何从这一长串管道信息中删除行尾

  •  0
  • BostonMacOSX  · 技术社区  · 6 年前

    我正在运行的命令是:

    locate -b '\java' | xargs -ri  find {} -prune -type f -executable | xargs bash -c '$0 -version'
    

    以下是回应

    java version "1.6.0_41"
    OpenJDK Runtime Environment (IcedTea6 1.13.13) (rhel-1.13.13.1.el6_8-x86_64)
    OpenJDK 64-Bit Server VM (build 23.41-b41, mixed mode)
    

    我希望能把这些都放在一行上。

    我尝试过各种sed和awk,但它总是以3行的形式返回。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Ed Morton    6 年前

    加上:

    | awk '{printf "%s%s", sep, $0; sep=OFS} END{print ""}'
    

    到现有管线的末端。如果这并没有改变输出,那么它很有可能是去stderr而不是stdout,那么将上面的更改为:

    2>&1 | awk '{printf "%s%s", sep, $0; sep=OFS} END{print ""}'