在一行中复制列时删除空格

时间:2015-10-25 21:58:35

标签: regex bash awk sed

我正在使用exec-maven-plugin复制一个列并复制到一个新文件并尝试在复制后删除文件中的空格,在一行中,没有设法这样做,这就是我所拥有的到目前为止:

<configuration>
    <executable>${my.gf.asadmin}</executable>
    <arguments>
        <argument>-u ${my.gf.username}</argument>
        <argument>-W ${my.gf.password}</argument>
        <argument>-H ${my.gf.host}</argument>
        <argument>-p ${my.gf.port}</argument>
        <argument>deploy</argument>
        <argument>${my.file.url}</argument>
    </arguments>
</configuration>
复制后的

应该是这样的

[DEBUG] Toolchains are ignored, 'executable' parameter is set to /usr/local/programs/glassfish4/glassfish/bin/asadmin
[DEBUG] Executing command line: [/usr/local/programs/glassfish4/glassfish/bin/asadmin, -u admin], -W, -H localhost, -p 4848, deploy, /home/akoel/Projects/java/TMP-TEST/hu.akoel.ear/target/maventest-0.0.2.war]
Non-boolean option: u, not allowed in argument: -u admin]
删除空格后

awk

1 个答案:

答案 0 :(得分:3)

让awk完成所有工作:

awk '$2{ print $2 }'

默认情况下,awk在空格上分割。如果第二个字段的计算结果为“true”,则上面的表达式将打印第二个字段。

如果第二个字段可能为“0”或另一个字符串的值为“false”,或者字段分隔符不是空格,则需要更明确一些。

'$2 ~ /[^[:space:]]/{ print $2 }'

(正则表达式[^[:space:]]匹配包含至少一个非空白字符的字符串。)