![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 複数のヘッダを組み合わせながら、テキストファイルのマージ/トレーラーのレコードごとに1つ。 | oordonez | シェルプログラミングとスクリプティング | 4 | 2008年11月17日 11:06午後 |
| あなたの年齢は何ですか? (パート2 ) | Perderabo | 何を考えてるの? | 37 | 2007年7月20日 01:27午後 |
| レコードがない場合のファイル内のレコードヘッダーとプレビューなしに数を数える | guiguy | シェルプログラミングとスクリプティング | 2 | 2007年6月7日 01:15午後 |
| 削除されたレコードの検索に2ファイルを比較するヘルプ | eja | UNIXのダミー質問と回答のため | 2 | 2007年4月3日 09:53午前 |
| どのように関連するヘッダーレコードと重複したレコードを抽出する | run_eim | UNIXのダミー質問と回答のため | 17 | 2007年1月16日 11:46午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
詳細な記録の一部とヘッダの一部を比較する。
こんにちは、
私リルは、次の問題と混同しています。 私は、ファイルは、次のヘッダがある: IMSHRATE_043008_101016 サンプルを詳細に記録されます:9820101 A982005000CAVG030108000000000000010169000MAR 2008 9820102 3月2008 D030108 私はヘッダの一部を比較するために(赤文字で、その一DDMMYY形式)されている必要があります と 詳細な記録の一部(そのフォントで、ハイライトはイエローもDDMMYY形式) 。 この問題はこのような詳細な記録は、平均50000レコードを何千もの( )は、 1つのファイルに掲載されている。誰でも詳細な記録' highlightenedの[ヘッダーの一部では'の部分の比較で手伝ってくれる 赤 および 黄色 上記の例ではフォントですか? よろしく、 Cmaroju |
|
||||
|
やあ、
黄色のハイライトのセクション、すべての詳細行に固定されていますか? とにかく、以下の perlの もうちょっと役立つことがあります 入力( a.txt ) : コード:
IMSHRATE_043008_101016 9820101 A982005000CAVG 030108 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 9820101 A982005000CAVG 030109 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 9820101 A982005000CAVG 043008 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 コード:
MSHRATE_043008_101016 9820101 A982005000CAVG 030108 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Smaller than header 9820101 A982005000CAVG 030109 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Bigger than header 9820101 A982005000CAVG 043008 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Equal with header コード:
open FH,"<a.txt" or die "Can not open file\n";
my @arr=<FH>;
close FH;
$arr[0]=~m/(.*)_([0-9][0-9])([0-9][0-9])([0-9][0-9])_(.*)/;
$header=$4.$2.$3;
print $arr[0];
for($i=1;$i<=$#arr;$i++){
my @temp=split(" ",$arr[$i]);
$temp[2]=~m/([0-9][0-9])([0-9][0-9])([0-9][0-9])/;
my $body=$3.$1.$2;
print $arr[$i],($body>$header)?"Bigger than header\n":($body==$header)?"Equal with header\n":"Smaller than header\n";
}
|
![]() |
| ブックマーク |
| スレッドツール | このスレッドを検索 |
| 表示モード | このスレッド |
|
|