在awk if语句中发布

时间:2018-09-04 00:28:28

标签: if-statement awk syntax

我似乎没有正确理解这个awk语句:

awk '{ trailing=""; if ($0 ~ / /) trailing="#"; printf("# %s\n#elements/%s%s\n", $0, $0, trailing) > $0".txt" }' file

我收到此错误:

awk: syntax error at source line 1
 context is
    { trailing=""; if ($0 ~ / /) trailing="#"; printf("# %s\n#elements/%s%s\n", $0, $0, trailing) > >>>  $0".txt" <<<
awk: illegal statement at source line 1

这是怎么了?我尝试将{ }放在if块中的单个语句周围,但这没有帮助。

1 个答案:

答案 0 :(得分:3)

由于未发布源Input_file,因此无法对其进行测试,因此,您可以按以下方式尝试将$0".txt"换成($0".txt")并让我知道。

awk '{ trailing=""; if ($0 ~ / /) trailing="#"; printf("# %s\n#elements/%s%s\n", $0, $0, trailing) > ($0".txt") }' Input_file