2011-02-28 162 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

相關問題