The UNIX and Linux Forums  


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



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

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
でXMLパースエラーはperl bishweshwar UNIXの詳細&エキスパートのためのユーザー 1 2007年5月30日 午後11時59分
PERLをしてHTMLを解析 avik1983 シェルプログラミングとスクリプティング 3 2007年2月23日 09:25午前
解析して、変数の値を取得 Rekha シェルプログラミングとスクリプティング 3 2006年8月1日 11:39午前
のPERL -解析Crystal Reportsの srinivay シェルプログラミングとスクリプティング 0 2005年5月12日 08:55午前
bashの変換にはPerlのスクリプトを解析? cstovall シェルプログラミングとスクリプティング 2 2004年10月13日 11:33午後

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年7月16日
フィガロ figaro is offline
登録ユーザー
  
 

参加日: 2007年1月
投稿数: 268
Perlの:変数のパース

私は以下のスクリプトがある:

コード:
#!/usr/bin/perl -w

@files = <*.csv>;
foreach $file (@files) {
  open(FH, $file);
  my @dt = split(/_|.csv/, $file);
  while (<FH>) { 
    chomp;
    print $dt[1] . $dt[2] . ",$_\n";
  }
  close(FH);
}

このスクリプトでは、現在のディレクトリ内のすべてのcsvファイルの読み込み、画面には、日付、時間、完全な内容が印刷されます。

ファイル名の名前、日付、時間と接尾辞の"構成されています。 csvファイル" 。つまり、ファイル名がfoo_20080909_120345.csv
これを実行時には、 @ dt配列を保持:
- $ dt [ 0 ] \u003d " foo "を
- $ dt [ 1 ] \u003d 20080909
- $ dt [ 2 ] \u003d 120345

ライン9だから( dt [ 2 dt [ 1 ] 。 $ $印刷] " 、 $ _ \ Ñ " )の利回りは以下の行:
レコードの" 20080909 120345 ,[...残り...]"
収量が必要:
記録の" 2008年9月9日12時〇三分45秒,[...残り...]"

どうすればダッシュ("-")とコロンのような人為的コードを使用せずに正しい場所で(":")を入力してください:
substr ( $ dt [ 1 ] 、 0 、 4 ) 。 " - " 。 substr ( $ dt [ 1 ] 、 4 、 2 ) 。 " - " 。 substr ( $ dt [ 1 ] 、 6 、 2 )
その日のためだけにしています。

事前に感謝
  #2固定リンク)  
Old 2008年7月16日
悪魔主義者 Diabolist is offline
登録ユーザー
  
 

参加日: 2002年3月
投稿: 44
ここに私のファイルです:


コード:
bar_20081009_113023.csv
foo_20080909_120345.csv
munge_20061231_010020.csv

ここには、スクリプトの:

コード:
#!/usr/bin/perl -w

@files = <*.csv>;
foreach $file (@files) {
  open(FH, $file);
  my @dt = ($file =~ /^(\w+)_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})\.csv$/);
  while (<FH>) {
    chomp;
    print "$dt[1]-$dt[2]-$dt[3] $dt[4]:$dt[5]:$dt[6],$_\n";
  }
  close(FH);
}

ここには、出力:

コード:
# ./test.pl
2008-10-09 11:30:23,bar1
2008-10-09 11:30:23,bar2
2008-09-09 12:03:45,foo1
2008-09-09 12:03:45,foo2
2006-12-31 01:00:20,munge1
2006-12-31 01:00:20,munge2

私はそれが少しはきれいにできることを確認しています。私は非常に良好ではない perlの
  #3固定リンク)  
Old 2008年7月16日
フィガロ figaro is offline
登録ユーザー
  
 

参加日: 2007年1月
投稿数: 268
それは優秀な、おかげで動作します。
Closed Thread

ブックマーク

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

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

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

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




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


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

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