![]() |
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| ç方法で特定の行にファイルポインタを移動する | user_prady | 高レベルのプログラミング | 7 | 2008年3月27日 12:32午前 |
| 前の行を返す | user_prady | シェルプログラミングとスクリプティング | 12 | 2007年12月18日 07:37午前 |
| Vimの方法で前の行に | useless79 | UNIXの詳細&エキスパートのためのユーザー | 2 | 2007年9月16日 09:10午前 |
| 検索とファイル内の前の行を取得 | paulsew | シェルプログラミングとスクリプティング | 2 | 2007年2月23日 08:04午前 |
| Perlで前の日の日? | rajus19 | シェルプログラミングとスクリプティング | 4 | 2006年7月18日 01:40午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
Perlの方法で前の行には、 txtファイルポインタを移動するか?
私は、テキストのブロックされているテキストファイルがあります。各ブロックで始まるで終わるとEnd_ # # # # # # 。
私が書いた perlの スクリプト(任意の行を無視する2行目から文字列を検索して起動する# # # )は、各ブロックの もし一致は、ブロック全体を印刷する必要があります。以下では、入力ファイルによれば、 、 、 # 05 # 04ブロック# 02を出力します。 ここに私の質問ですが、私は何の問題は、一度に一致SEARCH_STRマッチングが、どうやって前の行を移動するのですか? ブロック# 02 、ライン3の例で一致したが、私の行を1 & 2を印刷する必要があります。 すべての助けを事前に感謝します! 私のスクリプト: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d # ! / 46020/local/bin /perlの -ワット # ( $ # ARGV ! \u003d 0 ) (場合 印刷"を検索条件を提供する必要があります。 \ Ñ " ; 出口; ) 私の$クエリ\u003d $ argv変数が[ 0 ] ; 私の$入力\u003d " / mypath / inputFILE.txt " ; 私の$ライン; 私の$タグ\u003d 0 ; 私の結果@ \u003d ( ) ; オープン(ファイルは、 " < $入力" )または死ぬ" ' $入力'ファイルを開けません: $ ! " ; ( $は、行\u003d <ファイル> ) ( 次の場合( $行\u003d 〜 / ^ # [ 0-9 ] [ 0-9 ] .* - / | | $行\u003d 〜 / ^ \ *$/);秒 ( $行\u003d 〜 / $クエリ/ 1 ) ( $タグ\u003d 1 ; ) ( $行\u003d 〜 / ^ End_ # / & & $タグ\u003d\u003d 1 ) ( 結果( @タグ\u003d\u003d 1 ) 、 $ライン) ( $プッシュ; $タグ\u003d 0 ; ) 結果( @タグ\u003d\u003d 1 ) 、 $ライン) ( $プッシュ; ) 終了(ファイル) ; @結果を印刷する" \ Ñ " ; 出口; INPUTFILE : \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d # 01 -ブロックの開始行はこちら 一部のテキストをここに 複数のテキストはこちら 複数行 複数行 複数行 End_ # 01 # 02 -ブロックの開始行はこちら 一部のテキストをここに このラインは、何かが含まれてSEARCH_STR 複数行 複数行 End_ # 02 # 03 -ブロックの開始行はこちら 一部のテキストをここに 複数のテキストはこちら 複数行 複数行 複数行 End_ # 03 # 04 -ブロックの開始行はこちら 一部のテキストをここに 複数行 複数行 ここに、何かのSEARCH_STRです 一部のテキストをここに 複数行 複数行 複数行 End_ # 04 # 05 -ブロックの開始行はこちら 一部のテキストをここに 複数行 ここに、何かのSEARCH_STRです 複数行 End_ # 05 # 06 -ブロックの開始行はこちら 一部のテキストをここに 複数のテキストはこちら 複数行 複数行 複数行 End_ # 06 |
|
||||
|
はい、私たちの両方の要件を理解し、あなたが望むと思うの両方の提案を行うことができます。あなたからのループに精通している場合 perlの 配列し、タイを使用して追加[ n ]配列下: $を使用する: :ファイルが非常にまっすぐ進む一度ドキュメントが読み込まれます。
S_Mの提案を、線でチャンク内のファイルではなく、ラインを読み、失敗することがありますが、最後の試合がある場合は、ファイルの最後に2つの改行されていませんように動作するはずだ。あなたはそれを分析し、参照するか、おそらく彼は予定を明らかにすることができます。 |