#!/usr/bin/perl use Data::Dumper; use File::Copy 'move'; my %fields = ( QOS_PROFILE_ID => "x1", CHARGING_PROFILE_ID => "x2", CONTENT_FILTERING_PROFILE_ID => "x3", SUBSCRIBERID => "x4", RECORD_LENGTH => "x5", RECORD_TYPE => "x6", EVENT_ID => "x7", EVENT_RESULT => "x8", CAUSE_PROTOCOL => "x9", DEFAULT_BEARER_ID => "x0", ARP_PRIORITY_LEVEL => "y1", ARP_CAPABILITY => "y2", ARP_VULNERABILITY => "y3", BEARER_CONTROL_MODE => "y4", TRACKING_AREA_CODE => "y5", ROUTING_AREA_CODE => "y7", SERVICE_AREA_CODE => "y8", SYSTEM_IDENTIFIER => "y9", NETWORK_IDENTIFIER => "y0", GX_RAR_RAA_TRANSACTION => "TRAR", GX_CCR_CCA_TRANSACTION => "TCCA", QUOTA_GRANTED => "TQG", QOS_ASSIGNED_TO_DEFAULT_BEARER => "TQA", RULE_INSTALLED => "TRI", RULE_REMOVED => "TRR", ); my $regexp = "(" . ( join "|", map quotemeta, keys %fields ) . ")"; foreach my $file () { # work with files changed more than 10 minutes ago next if time - ( stat $file )[9] < 10 * 60; print scalar localtime, "\n"; # instead of `date` { local @ARGV = ($file); # edit this file local $^I = ""; # enable in-place editing without backup LINE: while ( defined( $_ = ) ) { s/[^[:ascii:]]//g; tr/\015//d; s/$regexp/$fields{$1}/g; } continue { die "-p destination: $!\n" unless print $_; } } move( $file, "/data/admin/scripts/SapcmedadpebM/xdecoder/decodedir/compleat/" ); }