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

在awk if语句中发出

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

    我似乎没有正确理解这个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
    

    这里怎么了?我试着把 { }

    1 回复  |  直到 5 年前
        1
  •  3
  •   RavinderSingh13    6 年前

    由于源输入文件未发布,因此无法测试它,请尝试包装 $0".txt" ($0".txt") 请告诉我。

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