The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
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午前

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

参加日: 2004年7月
投稿: 12
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
  #2固定リンク)  
Old 2008年1月24日
Smiling Dragon's Avatar
ドラゴン笑顔 Smiling Dragon is offline Forum Advisor  
Disorganisedユーザ
  
 

参加日: 2007年11月
場所:ニュージーランド
投稿数: 922
Post

このようにしてみてください:

コード:
#!/46020/local/bin/perl -w
$/="\n\n";
while (<STDIN>) { if (/$ARGV[0]/) { print $_ }}

。 / scriptname.pl SEARCH_STR < / mypath / inputFILE.txt
  #3固定リンク)  
Old 2008年1月24日
KevinADC KevinADC is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2008年1月
投稿数:731
提案Smiling_Dragons動作しない場合は、タイ:使用することができます: 、これを読むことと、ファイルへのモジュールのファイルと同じように書くことができます perlの 配列。ネクタイを参照してください: :使用方法の詳細についてのドキュメントファイル。また、コアモジュールが既にインストールされている必要がありますので。動けなくなる場合は、バック投稿してください。
  #4固定リンク)  
Old 2008年1月25日
tqlam tqlam is offline
登録ユーザー
  
 

参加日: 2004年7月
投稿: 12
だけを明確にするには、 inputFILE.txt 、印刷するときにSEARC_STR # 02 、 # 04 、 # 05のブロックでは、スクリプトを実行するによるとします。スクリプトを検索できます。
マイコードと一致する次の行を印刷することEnd_ # # # 、でも私は、ブロック内の行を印刷する方法を前に一致する必要があります。

ありがとうございました。
  #5固定リンク)  
Old 2008年1月25日
KevinADC KevinADC is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2008年1月
投稿数:731
はい、私たちの両方の要件を理解し、あなたが望むと思うの両方の提案を行うことができます。あなたからのループに精通している場合 perlの 配列し、タイを使用して追加[ n ]配列下: $を使用する: :ファイルが非常にまっすぐ進む一度ドキュメントが読み込まれます。

S_Mの提案を、線でチャンク内のファイルではなく、ラインを読み、失敗することがありますが、最後の試合がある場合は、ファイルの最後に2つの改行されていませんように動作するはずだ。あなたはそれを分析し、参照するか、おそらく彼は予定を明らかにすることができます。
  #6固定リンク)  
Old 2008年1月27日
Smiling Dragon's Avatar
ドラゴン笑顔 Smiling Dragon is offline Forum Advisor  
Disorganisedユーザ
  
 

参加日: 2007年11月
場所:ニュージーランド
投稿数: 922
引用:
当初の投稿 KevinADC View Post
S_Mの提案を、線でチャンク内のファイルではなく、ラインを読み、失敗することがありますが、最後の試合がある場合は、ファイルの最後に2つの改行されていませんように動作するはずだ。あなたはそれを分析し、参照するか、おそらく彼は予定を明らかにすることができます。
私は[ OK ]を、通常のファイルの終端になると思います-私は1つの改行をしてみましたが 見えた 無事にんだけど、確かに多くのテストをするhavn't
Closed Thread

ブックマーク

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

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

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

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




すべてGMT -4です。現在の時刻は 01:51午後


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

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