【问题标题】:Redirect Output to a file which is variably defined将输出重定向到可变定义的文件
【发布时间】:2014-01-11 07:03:43
【问题描述】:

我有一个 awk 脚本,它正在解析字段的 CSV 部分,需要根据文件中另一个字段的内容将其写入另一个文件。示例给定一个 CSV:

  Col1,Col2,Col3

awk 脚本将输出一个名为 Col1.txt 的文件,其中包含 Col2 和 Col3 的内容。在搜索中,似乎使用打印重定向应该有效。我试过了:

  printf("%s\t%s", Col2, Col3) > Col1

但我收到一条错误消息“无法重定向到 'Col1'(无效参数)

【问题讨论】:

    标签: windows csv awk


    【解决方案1】:

    您可以尝试使用双引号,例如> "Col1.txt"

    如果Col1 是一个包含文件名基本名称的awk 变量,您可以这样做

    printf ("%s\t%s", Col2, Col3) > (Col1 ".txt")
    

    或者您可能想要解析 CSV 文件,例如:

    awk -F, '{printf("%s\t%s", $2, $3) > "Col1.txt"}' file.csv
    

    您可能还想在每行之后添加一个换行符。作为printf("%s\t%s\n", $2, $3)

    【讨论】:

    • 这行得通,但与需要用 " 转义的系统调用不同,如果你有 " 在其中,这会中断。我不知道为什么,但是一旦我这样做了,这个解决方案就完美了。
    猜你喜欢
    • 1970-01-01
    • 2016-08-09
    • 2013-10-11
    • 2023-03-19
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多