将awk脚本的输出重定向到文件

时间:2011-02-28 09:02:24

标签: linux shell awk

我创建了一个awk脚本。我想将其输出保存在文件中。但

awk -f a.awk >meta.txt

无效。谁能告诉我为什么会这样? 任何人都可以建议哪个命令最适合创建具有特定格式的文件。如果我为此目的使用awk,那没关系。

5 个答案:

答案 0 :(得分:2)

如果AWK脚本没有处理文件或从管道接收输入,那么整个脚本应该在BEGIN块中。

BEGIN { print "foo"
        print "bar"
        while (a < c) a+=b
        print a, b, c
}

答案 1 :(得分:1)

你是否给了awk任何输入?如果它坐在那里什么都不做,你按^ D结束你没有在STDIN上给它任何东西。你的a.awk脚本是什么样的?

尝试:

cat input.txt | awk -f a.awk > meta.txt

答案 2 :(得分:1)

awk需要输入。通过命令管道一些数据,例如:

ls -l | awk -f a.awk > meta.txt

或者:

awk -f a.awk -- somefile.with.input > meta.txt

答案 3 :(得分:1)

使用-f调用awk脚本时,请确保包含要处理的文件名。将其遗漏的常见错误

awk -f a.awk [filename] > output.txt

或者如果你的awk脚本被设计为接受stdin,请确保你正确地将stdin输入到它。例如

some command | awk -f a.awk

答案 4 :(得分:0)

script -a -c "awk -f a.awk" meta.txt