2014-01-10 143 views
0

我有一个awk脚本,它解析CSV字段中的一部分需要根据文件中另一个字段的内容写入另一个文件。例如给定一个CSV:将输出重定向到一个可变定义的文件

Col1,Col2,Col3 

的awk脚本将输出一个名为Col1.txt与col2的和COL3的内容的文件。在搜索似乎使用打印重定向应该工作。我已经试过:

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

但我得到一个错误消息“无法重定向到‘Col1中’(无效参数)

回答

3

您可以尝试使用双引号像> "Col1.txt"

如果Col1是包含文件名的基本部分的awk变量,你可以做

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

或者,也许你想解析CSV FIL e like:

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

并且您可能还希望在每行之后添加一个换行符。由于printf("%s\t%s\n", $2, $3)

+0

这工作,但不像呼叫系统,需要用“逃脱”,如果你有他们“,这将打破。我不知道为什么,但是一旦我做到了,这个解决方案就完美了。 – JadziaMD