2009-04-14 18 views
2

問題は私の答えhereに関連しています。AWKをBashスクリプトでどのように実行できますか?

私はどのようにbashスクリプトにAWKを実行することができますエラーメッセージ [編集済み]

$./code 
--2009-04-14 19:01:32-- http://www.google.com/coop/cse?cx=017685108214920485934%3Aizx6pzojwka 
Resolving www.google.com... 74.125.79.103, 74.125.79.99, 74.125.79.147, ... 
Connecting to www.google.com|74.125.79.103|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: `cse?cx=017685108214920485934:izx6pzojwka.6' 

    [ <=>                            ] 8,096  --.-K/s in 0s  

2009-04-14 19:01:33 (78.0 MB/s) - `cse?cx=017685108214920485934:izx6pzojwka.6' saved [8096] 

./code: line 3: -O: command not found 
awk(57264) malloc: *** error for object 0x4eee0: Non-aligned pointer being freed (2) 
*** set a breakpoint in malloc_error_break to debug 
awk: cmd. line:1: fatal: cannot open file `/Users/Masi/Documents/test/CSE-spanien' for reading (No such file or directory) 

#!/bin/bash 
wget http://www.google.com/coop/cse?cx=017685108214920485934%3Aizx6pzojwka -O CSE-spanien 
awk '/^searches [1-9]* sites, including:/ { print $2 }' CSE-spanien 

例を作業するために、次のコードを取得することはできませんか?

+0

何が問題になりますか? –

答えて

3

行の末尾に-O CSE-spanienがありません。その結果、CSE-spanienは存在しません。wgetは、ファイル名がcse?cx=017685108214920485934:izx6pzojwka.2のHTMLを保存しています。

+0

ありがとうございました!問題は、wgetの-Oオプションと私のコンピュータのPATHです。 –

2

いくつかのランダムな思考

  • はあなたのパス---スクリプト環境で使用したものをチェックしてください。 awkは "awk"という名前の環境ですか?
  • 重要でないスクリプトにはHERE documentsを使用することを検討してください。
  • 出力をリダイレクトする必要がありますか?標準エラーはどうですか?
  • 前のプロセスの終了状態をキャプチャして、何らかの意思決定を行うべきですか?
  • エラーメッセージから、if [ -f FileToUse ]を使用できるようです。特定の喘鳴がわからない場合は、wgetの出力を入れますが、強制的に(-O)したいかもしれません。
2

問題は、wgetが現在の作業ディレクトリにCSE-spanienファイルを作成しないことです。ファイルの作成場所を確認し、awkコマンドでファイルの絶対パスまたは相対パスを追加することをお勧めします。期待されるファイルが存在するかどうかをテストすることも賢明でしょう。(test -f CSE-spanien && awk ...

関連する問題