2011-02-28 225 views
2

我创建了一个awk脚本。我想将它的输出保存在一个文件中。但是将awk脚本的输出重定向到一个文件

awk -f a.awk >meta.txt 

不工作。有人能告诉我为什么会发生这种情况? 任何人都可以建议哪种命令最适合用特定格式创建文件。如果我为此使用awk,可以吗?

+1

将您的代码粘贴到此。运行“awk -f a.awk”时输出的内容 – Zimbabao 2011-02-28 09:05:04

回答

2

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

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

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

尝试:

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

无用的“cat”。 AWK接受输入文件名作为参数。 – 2011-02-28 12:42:05

1

awk需要一个输入。管一些数据通过命令,e.g:

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

或者:

awk -f a.awk -- somefile.with.input > meta.txt 
0
script -a -c "awk -f a.awk" meta.txt 
+0

你能解释一下你的命令是干什么的吗? – Shweta 2011-02-28 09:43:22

+0

脚本会在您的终端上打印所有内容。但是你已经知道你的错误在哪里了。 – 2011-02-28 14:14:45

1

,当你调用使用-f awk脚本,确保包含文件名的过程。其常见的错误是离开它

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

,或者如果你的awk脚本设计采取标准输入,确保你正确管道标准输入到它。例如

some command | awk -f a.awk 
+0

实际上我在另一个脚本中使用它,并且所有输入都由该脚本提供,所以没有输入文件 – Shweta 2011-02-28 09:39:30

+0

ok,所以使用管道 – kurumi 2011-02-28 09:41:01

+0

我想在脚本中的特定位置使用此awk脚本,所以它是脚本的一部分。 – Shweta 2011-02-28 09:45:17

相关问题