The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
Googleのunix.com



シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
シェルスクリプトでは、文字列の解析 asutoshch シェルプログラミングとスクリプティング 19 2008年5月26日 10:18午後
シェルスクリプトを用いて解析するsed jjamd64 UNIXのダミー質問と回答のため 5 2007年12月11日 04:51午後
シェルスクリプトの行の解析 unishiva シェルプログラミングとスクリプティング 3 2007年11月1日 04:30午後
シェルスクリプトでCSVファイルをパースヘルプ mihirk シェルプログラミングとスクリプティング 10 2007年6月24日 11:58午前
シェルスクリプトでファイルを解析 sendhilmani123 シェルプログラミングとスクリプティング 4 2006年11月30日 02:29午前

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2007年2月8日
gurpreet470 gurpreet470 is offline
登録ユーザー
  
 

参加日: 2007年2月
投稿数: 4
300メガバイトのログファイルをパースするためのシェルスクリプトを..

シェルスクリプトの午前は比較的新しい。
私は、大きなファイルを解析するためのスクリプトを書いている。ロジックです:
他の多くの無駄stuffsから、そこの多くの出現<abc>と<対応/ abcの>タグがあります。 (すべての人が適切に)閉じている
私の要件は、特定のタグを見つけることである(と言う<data> 1234 < /データ> ) <abc> < / abcの>タグで囲まれた任意の場所との間。
が見つかれば、私は一時ファイルに以下の4行<abc>タグを格納する必要があります。

典型的なログファイルのようになります:

************************
<pqr>
......
一部のデータ
いくつかの他のデータ
.........
< / pqr >
いくつかのテキストデータ
...........
<abc>
blah
blah
.....
<id> 12345 < /番号>
blah ...
......
<data> 1234 < /データ>
< / abcの>
........
.....
.....

<abc>
blah
blah
.....
<id> 12345 < /番号>
blah ...
...
< / abcの>
..........
<rst>
...
...
< / RSTを>
いくつかのテキストデータ...

****************************

このスクリプトの出力する必要があります<id> 12345 < /番号>いくつかの一時ファイルに格納されます。

私はこのスクリプトを使用しています:

********************

rm - fをtemp.log
ファイル名\u003d $ 1
[ OK ]を\u003d 0

は行を読む
する


[ " $行が" \u003d " <abc> " ] ;し
[ OK ]を\u003d 1
Fiの

場合、 [ " $ [ OK ]を"式1 ] ;し
> $行エコー> temp_file
Fiの

[ " $行が" \u003d " < / abcの> " ] ;し
[ OK ]を\u003d 0
Fiの

場合、 [ " $ [ OK ]を" -式0 ] ;し

[場合、 - fを] temp_file ;し

は行を読む

する

[ " $行が" \u003d " <data> 1234 < /データ> " ] ;し

猫temp_file | Awkの' (場合( NR \u003d\u003d 4 ) (印刷( $ 0 ) ) ) ' > > temp.log

Fiの

実行< temp_file

rm temp_file

Fiの

Fiの

実行< $ filename.log

*******************************

の<abc> < / abcの>タグの最後の部分で一般的に(そうとも限りません) 、 500000行の後に来るのどこか...通常、ファイルの700000行している。

このスクリプトを実行する実行している、と私は、最初の行は、一時ファイルに格納している2レコードの検索を行う。しかし、一部の6-7分後に突然のスクリプトと述べ、終了
scriptname.sh試験:引数を予想している。

もしどなたかが私を助けることはできますか?
  #2固定リンク)  
Old 2007年2月8日
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
中毒
  
 

参加日: 2007年1月
場所: Варна 、 България /ミラノ、イタリア
投稿数:2892
*のGNU Awkの*ソリューション:

コード:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
  #3固定リンク)  
Old 2007年2月9日
gurpreet470 gurpreet470 is offline
登録ユーザー
  
 

参加日: 2007年2月
投稿数: 4
スクリプトが動作していない..

引用:
当初の投稿 radoulov
*のGNU Awkの*ソリューション:

コード:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
Awkの力では本当に感動..
お客様の反応をご覧いただいた後、 Awkのにはいくつかの記事をお読みください。
どういうわけか、このスクリプトは、動作していないし、 ..という結末
**********************
awkは:レコード` /応答>
金00:27 :...'長すぎる
レコード番号22
**********************
私はあなたに期待することです

ありがとう
  #4固定リンク)  
Old 2007年2月9日
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
中毒
  
 

参加日: 2007年1月
場所: Варна 、 България /ミラノ、イタリア
投稿数:2892
の記録を短縮するにしてください。あなたは<abc> < / abcの>タグの最後の部分では500000行の後にやって来るので、最初のレコードは本当に長いです 。他のタグを含む場合は短くすることができます/文字列(のRSには、ファイルのbeginig )がある:例のRS \u003d " <abc> | <other_tag> " 。必要に応じてまたは、あなたは私個人から、そういう努力をすることを圧縮したファイルのコピーを送信することができます
ところで、あなたのAwkのバージョンは何ですか?
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 08:18午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0