将awk结果重定向到文本文件

时间:2014-06-24 05:21:23

标签: windows command-line awk command-line-arguments gawk

我在文件中有以下行

lines="188"
lines="24"
lines="25"

我在引号(“”)中提取值,并使用以下命令将值相加得到237

awk -F'\"' '{count+=$2;}END{if(count>0) print count;else print 0}'

但是,我想将输出重定向到文本文件。我尝试使用重定向操作(>)运算符,但它一直给我错误

这是我到目前为止所拥有的

awk -F'\"' '{count+=$2;}END{if(count>0) print count;else print 0}' > "sum.txt"

这就是错误

fatal: cannot open file '>' for reading (No such file or directory)

4 个答案:

答案 0 :(得分:2)

已修改 - 似乎在awk和cmd之间的行中处理引号存在问题。要将引号用作分隔符,请将其更改为

awk -F \x22 "{count+=$2}END{print count+0}" "input.txt" > "output.txt"

答案 1 :(得分:1)

您未能在命令中提及输入文件名的路径。你的命令应该是,

awk -F'"' '{count+=$2;}END{if(count>0) print count;else print 0}' inputfile > "sum.txt"

而且你也不需要在单引号内转义FS值"

答案 2 :(得分:0)

你可以缩短一些:

awk -F\" '{count+=$2}END{print count+0}' file > sum.txt

添加0,您的测试与测试相同,如果0为空,也会打印count

答案 3 :(得分:0)

缺少输入文件。

awk -F'\"' '{count+=$2;}END{if(count>0) print count;else print 0}' inputfile > "sum.txt"

输出文件的报价不是问题。