awk:String Concat添加“0”

时间:2013-04-25 11:35:01

标签: string awk string-concatenation concat

我尝试在awk脚本中连接两个字符串但是我得到的结果在最后一个位置有一个“0”。

    (input...) | awk '$1 ~ "match" { 
            (...)
            STRING1 = $2 ;
            STRING2 = $3 ;

            RESULT = STRING1 "" STRING2 ;   

            print RESULT ;   

    }' | (output....)   

如果是$2 = "Foo"$3 = "Bla",结果将为“FooBla0”。

如何连接结果为“FooBla”的两个字符串?

1 个答案:

答案 0 :(得分:2)

给定的代码不会将0附加到该行,或者您的代码不完整,您的输入不是您所期望的,或者在简化问题时您遗漏了一条关键信息:< / p>

$ cat file
match foo bla

$ awk '$1 ~ "match" { 
             STRING1 = $2 ;
             STRING2 = $3 ;

             RESULT = STRING1 "" STRING2 ;

             print RESULT ;   

     }' file
foobla

注意:对于简单的字段连接,这是很多不必要的代码:

$ awk '$1=="match"{print $2$3}' file
foobla

还要注意$1=="match"$1~"match"之间的区别,第一个是完整字段字符串匹配,第二个是正则表达式匹配。如果你真的想要第二个我建议使用$1~/match/


我怀疑你错过了关键信息,print fflush()打印了函数的退出状态。你想要print RESULT;fflush()或更好,只需将函数调用放在下一行脚本上。