How to read a file and replace the value with a name

I have a file with what I will call source identifiers. I want to read this file and add a name to it based on the source identifier, for example 15431 = MyTV8 . I have a file that shows the source identifier and name, but I'm not sure how to read the original identifiers and add the names from the channel map file to the file with the source identifiers.

A small sample of source identifiers I survey

  13431
 0
 4112
 4129
 11412
 0
 0
 12055
 0
 0
 4129
 0
 0
 12125
 12120
 0
 10959
 5370
 5380
 4109
 0
 20121
 0
 12334
 11493
 0
 0
 4107
 5687
 0
 4008
 0
 0
 4166
 5378
 4203
 0
 12056
 0
 0
 0
 0
 4286
 4183
 0
 0
 4129
 4037
 0
 10555
 12209
 11205
 8846
 0
 0
 5380
 4719
 0
 4166
 4117
 4150
 0
 4183
 0
 4123
 10391
 0
 4183
 4151
 5531
 4107
 4179
 4185
 4203
 4203
 0
 4107 

They are only in a text file, and here is a map of the source-source channel

  1052 SCIFI                  
 1053 COMEDY                  
 1066 CSPAN2                  
 1067 ESPN CLASSIC            
 1100 SUNSHINE FOOTBALL       
 1133 TRUTV                   
 1241 SHOWTIME 2 EAST         
 1312 MC METAL                
 1315 MC KIDS ONLY            
 1318 MC HIP HOP & R&B        
 1319 MC MC MIX TAPE          
 1324 MC LITE CLASSICAL       
 1326 MC SINGERS & SWING      
 1330 MC R&B CLASSICS         
 1332 MC MEXICANA             
 1334 MC RAGGAE               
 1338 MC HIP HOP CLASSICS     
 1339 MC SOUND OF SEASON      
 1340 MC HIT LIST             
 1346 MC PARTY FAVORITES      
 1348 MC POP HITS             
 2006 COLLEGE SPORTS TV       
 2469 WGCU WORLD              
 2470 WGCU ED TV              
 3014 ACTION MAX WEST         
 3048 SHOWTIME SHOWCASE 3     
 3051 STARZ!  1 WEST           
 3059 JEWELRY TV              
 3064 STARZ!  In black         
 3068 WAM.                    
 3069 STARZ!  5 CINEMA WEST    
 3093 NICK TOO                
 4003 ACTION WEST             
 4008 NOGGIN                  
 4011 ENCORE DRAMA EAST       
 4029 LOGO MTV                
 4037 MOVIEPLEX               
 4068 FCS SOCC                
 4070 EWTN DIGITAL            
 4081 TELEFUTURA              
 4100 ADS-AMC                 
 4101 ADS-A & E                 
 4103 ADS-BET                 
 4104 ADS-BRVO                
 4105 ADS-C-SPAN              
 4107 ADS-TOON                
 4108 ADS-CMT                 
 4109 ADS-CNBC                
 4110 ADS-CNN                 
 4112 ADS-CMDY                
 4115 ADS-TRUTV / COURT-TV      
 4117 ADS-E!                  
 4119 ADS-ESPN                
 4120 ADS-ESPN2               
 4121 ADS-EWTN                
 4123 ADS-HALLMARK            
 4124 FIT TV                  
 4125 ADS-FX                  
 4127 ADS-CCTV                
 4128 ADS-HIST                
 4129 ADS-HGTV                
 4130 ADS-HSN                 
 4150 ADS-MSNBC               
 4151 ADS-MTV                 
 4156 ADS-NICK                
 4157 BARKER                  
 4159 PLAYBOY DIR.  CUT / CP    
 4163 ADS-STYLE               
 4164 ADS-QVC                 
 4166 ADS-SCIFI               
 4178 ADS-DSC                 
 4179 ADS-FAM                 
 4181 ADS-TLC                 
 4182 ADS-SPIKE               
 4183 ADS-USA                 
 4184 ADS-TWC-DIGITAL         
 4185 ADS-TNT                 
 4186 ADS-FOOD                
 4187 ADS-VH-1                
 4203 ADS-FXNEW               
 4241 ADS-TRAVL               
 4286 ADS-TCM                 
 4460 GAME SHOW               
 4485 MTV2.                   
 4545 SUNDANCE EAST           
 4557 ADS-TVL                 
 4702 ADS-VERSUS              
 4705 ADS-SPEED               
 4719 ADS-GOLF                
 4730 ADS-WGN                 
 5012 ADS TEST 1              
 5013 ADS TEST 2              
 5014 ADS TEST 3              
 5015 ADS TEST 4              
 5016 ADS TEST 5              
 5017 ADS TEST 6              
 5018 ADS TEST 7              
 5019 ADS TEST 8              
 5020 ADS TEST 9              
 5021 ADS TEST 10             
 5022 ADS TEST 11             
 5023 ADS TEST 12             
 5024 SUN SPORTS HD           
 5286 SHOP NBC.               
 5368 ADS-WEDU                
 5369 ADS-WXPX                
 5370 ADS-WFLA                
 5377 ADS-WTOG                
 5378 ADS-WTSP                
 6031 ADS-WRXY                
 6166 ADS-WWSB                
 6206 ADS-WZVN                
 6884 DXD / TOON DISNEY       
 7064 MY38 WB HD              
 7077 BLOOMBERG TV            
 7085 BIG TEN                 
 7086 BIG TEN 2               
 7090 ADS-HALLMARK VS         
 7331 CURRENT TV              
 7795 G4.                     
 8282 BIOGRAPHY               
 8285 HISTORY INTER.          
 8434 ADS-WTTA                
 8445 OUTDOOR CH              
 8499 OXYGEN                  
 8675 DO IT YOURSELF          
 8841 WEATHERSCAN             
 8846 LIFETIME MOVIE NET.     
 8888 BRAVO                   
 9144 NHL & MLB GAME 1        
 9145 NHL & MLB GAME 2        
 9145 NHL & MLB GAME 2        
 9145 NHL & MLB GAME 2        
 9146 NHL & MLB GAME 3        
 9146 NHL & MLB GAME 3        
 9147 NHL & MLB GAME 4        
 9147 NHL & MLB GAME 4        
 9147 NHL & MLB GAME 4        
 9148 NHL & MLB GAME 5        
 9148 NHL & MLB GAME 5        
 9148 NHL & MLB GAME 5        
 9149 NHL & MLB GAME 6        
 9149 NHL & MLB GAME 6        
 9149 NHL & MLB GAME 6        
 9150 NHL & MLB GAME 7        
 9150 NHL & MLB GAME 7        
 9150 NHL & MLB GAME 7        
 9151 NHL & MLB GAME 8        
 9151 NHL & MLB GAME 8        
 9151 NHL & MLB GAME 8        
 9152 NHL & MLB GAME 9        
 9152 NHL & MLB GAME 9        
 9152 NHL & MLB GAME 9        
 9153 NHL & MLB GAME 10       
 9153 NHL & MLB GAME 10       
 9201 FUSE                    
 9237 THEN / GAS              
 9472 C-SPAN3                 
 9544 TV GAMES                
 9550 SOAPNET                 
 9597 GAC                     
 10000 CINEMAX                 
 10001 ENCORE EAST             
 10002 HBO-2                   
 10004 HBO-3 SIGNATURE         
 10005 SHOWTIME EAST           
 10006 STARZ!  1 EAST           
 10008 DISNEY CHANNEL.         
 10010 TMC                     
 10011 SHOWTIME EXTREME E      
 10012 HBO WEST                
 10014 CINEMAX WEST            
 10021 ADS-ANPL                
 10023 CINEMAX MORE MAX -2     
 10025 TMC XTRA 2 EAST         
 10026 ACTION MAX EAST         
 10028 THRILLER MAX EAST       
 10041 NICKTOONS               
 10042 MTV JAMS                
 10045 VH-1 SOUL               
 10046 CMT PURE                
 10057 OUTERMAX EAST           
 10063 STARZ!  4 KIDS FAMILY    
 10065 STARZ!  5 CINEMA EAST    
 10067 VH-1 CLASSIC            
 10098 HBO LATINO E            
 10389 WORD                    
 10391 NATIONAL GEOGRAPHIC     
 10398 DAYSTAR TV              
 10475 SHOWTIME FAMILY         
 10555 @MAX EAST               
 10556 WOMANMAX                
 10558 5STARMAX EAST           
 10584 FCS ATL                 
 10585 FCS CEN                 
 10586 FCS PAC                 
 10911 SHOWTIME HDTV           
 10935 THEATER HD CMCHD4       
 10959 MTV HITS                
 10962 FINE LIVING / COOK TV     
 11101 ADS-CW6 / WTVK46          
 11126 ADS-PAX / ION           
 11132 ADS-WMOR                
 11205 ADS-SNN                 
 11242 RFD-TV                  
 11299 ADS-ESPN HD             
 11320 ADS-LIFE                
 11324 ADS-FSN-FLORIDA         
 11328 ADS-CC-SPORT-S          
 11406 ADS-DHC                 
 11411 ADS-SUN                 
 11412 ADS-CNN-HDLN            
 11414 ESPNU                   
 11431 NBA TV                  
 11446 SPORTSMAN               
 11493 TENNIS TV               
 11514 ESPN SPPV1              
 11515 ESPN SPPV2              
 11516 ESPN SPPV3              
 11517 ESPN SPPV4              
 11518 ESPN SPPV5              
 11519 ESPN SPPV6              
 11647 GOL TV                  
 11684 UNIVERSAL HD CMCHD2     
 11714 STARZ COMEDY            
 11716 STARZ HD                
 11855 TV ONE.                 
 11911 ADS-TNTHD               
 12002 CENTRIC                 
 12016 HBO EAST                
 12020 IFC                     
 12023 LOVE STORIES E.         
 12027 MYSTERY EAST            
 12030 OVATION                 
 12032 SHOWTIME 2 EAST         
 12037 STARZ!  EDGE             
 12044 WESTERNS EAST           
 12045 ACTION EAST             
 12049 DISCOVERY KIDS          
 12050 PLANET GREEN            
 12051 DISCOVERY SCIENCE       
 12055 WE.                     
 12056 MILITARY CHANNEL.       
 12112 ESPNEWS                 
 12120 DISC ID                 
 12125 NFL NETWORK             
 12130 FLIX EAST               
 12174 SHOWTIME BEYOND EAST    
 12175 BBC AMERICA             
 12209 ADS-TBS                 
 12306 ADS-REALTY-TV-PC        
 12333 ADS-LOPC                
 12334 ADS-ACCESS-CH-19        
 12336 ADS-SARASOTA-ED         
 12339 ADS-LO                  
 12340 ADS-TV-GUIDE            
 12393 WXPXHD                  
 12800 ADS-ESPN2HD             
 12810 WFTX FOX HD             
 12817 ADS-TBS HD              
 13008 HBO ZONE EAST           
 13011 HBO FAMILY EAST         
 13013 HBO COMEDY EAST         
 13017 WZVN PC HDTV            
 13039 WBBH PC HDTV            
 13050 NAT GEO WILD            
 13072 HALLMARK MOVIE CH       
 13104 GOSPEL MUSIC TV         
 13135 HBO HD CMCHD5           
 13136 MAX HD CMCHD5           
 13229 SPROUT "E" NETWORKS     
 13268 WFLA NBC HD             
 13289 WTVT FOX HD             
 13406 EMPLOYEE CHANNEL        
 13430 INDIEPLEX               
 13431 RETROPLEX               
 13467 ADS-SCI-FI HD           
 13551 PALADIEA HD             
 13738 HGTV HD CMCHD1          
 13745 NATGEO HD CMCHD3        
 13907 TV FOOD HD CMCHD2       
 14102 NFLHD                   
 14507 ADS-WNFM-8              
 14710 A&E HD CMCHD1           
 15000 IN DEMAND 1             
 15001 IN DEMAND 2             
 15045 SHORTEEZ ADULT          
 15067 NBA TEAM 1              
 15068 NBA TEAM 2              
 15069 NBA TEAM 3              
 15070 NBA TEAM 4              
 15071 NBA TEAM 5              
 15072 NBA TEAM 6              
 15073 NBA TEAM 7              
 15074 NBA TEAM 8              
 15075 NBA TEAM 9              
 15076 NBA TEAM 10             
 15128 REELZ                   
 15201 VERSUS - HD             
 15238 NHL & MLB GAME 14       
 15239 NHL & MLB GAME 13       
 15240 NHL & MLB GAME 12       
 15241 NHL & MLB GAME 11       
 15364 MTV SPANISH TR3         
 15542 PENTHOUSE / TEN ADULT     
 16116 ADS-FOX BUSINESS        
 16120 ANIMAL HD CMCHD4        
 16121 SCIENCE HD CMCHD8       
 16122 TDC HD CMCHD3           
 16123 TLC HD CMCHD5           
 16129 USA HD CMCHD3           
 16141 CNN HD CMCHD7           
 16240 LIFETIME MOVIENET HD    
 16280 NHL NETWORK             
 16317 RETIREMENT TV           
 16346 FX HD CMCHD9            
 16403 GOLF HD CMCHD7          
 16414 AMC HD CMCHD7           
 16430 BIOGRAPHY HD            
 16543 SPEED HD CMCHD9         
 16547 SPIKE HD                
 16686 DISNEY HD CMCHD-8       
 16692 FAMILY HD CMCHD8        
 16713 NICKELODEON HD          
 16756 FOX NEWS HD CMCHD9      
 16788 WEDU HD                 
 16792 WTSP DIGITAL WEATHER    
 16793 WTSP HDTV               
 16798 LIFETIME HD             
 16807 WWSB HDTV               
 16817 PLANET GREEN HD         
 17000 FRESH ADULT             
 17512 MLB NETWORK             
 17535 MLBHD                   
 18030 WGCU HD PBS             
 18324 HEADLINE NEWS HD        
 18333 TCM HD                  
 18411 TRU TV HD               
 18630 ​​FOX SPORTSNET FL HD     
 19005 3DTV 1                  
 19421 3DTV 2                  
 20101 MC 90                 
 20102 MC ADULT ALTERNATIVE    
 20104 MC RAP                  
 20105 MC THROWBACK JAMZ       
 20106 MC CONTEMP CHRISTIAN    
 20107 MC CLASSIC COUNTRY      
 20108 MC TODAY COUNTRY      
 20110 MC ROCK                 
 20112 MC GOSPEL               
 20113 MC RETRO ROCK           
 20115 MC TODDLER TUNES        
 20116 MC SOFT ROCK            
 20119 MC SOUNDSCAPES          
 20120 MC JAZZ                 
 20121 MC SMOOTH JAZZ          
 20122 MC CLASSICAL MASTERP    
 20124 MC 80                 
 20126 MC EASY LISTENING       
 20127 MC POP LATINO           
 20128 MC SOLID GOLD OLDIES    
 20129 MC R&B SOUL             
 20131 MC TRUE COUNTRY         
 20282 MC STAGE & SCREEN       
 20284 MC MUSICA URBANA        
 20287 MC TROPICALS            
 20289 MC CLASSIC ROCK         
 20338 MC CLASSIC ALTERNATV    
 20339 MC DANCE ELECTRONICA    
 20357 MC ALTERNATIVE          
 20358 MC ROMANCES             
 20359 MC BLUES                
 20360 MC 70                 
 21170 STARZ!  HD CMCHD1        
 21203 SCI FI HD CMCHD2        
 21442 THC HD CMCHD4           
 23104 E!  HD                   
 23105 TRAVEL HD               
 23106 CARTOON HD              
 23107 CSS HD.                 
 23109 NFL RED ZONE            
 23110 IND HDPPV               
 23111 IND HDPPV2              
 23112 ESPNU HD 
+4
source share
2 answers

Here there is a general scheme, and this is precisely this: it is a given intersection problem and as such can be easily solved with the help of Perl “sets”, which we tend to call hashes :).

The approach is to create a set from one of your data files (for example, indexing it into a hash table, for example: %set = (a => 1, b => 1, c => 1) , where the actual value is not significant, since we are going to test it with the "installed affiliation operator" exists ).

Once you have this, just go through another dataset and check if one of its keys (in your case, source identifiers) belongs to in %set above.

So, if the channel map file is in the following format:

ID,NAME

and the source identifier file is only one identifier per line, you can do the following:

 open my $CHANNEL_MAP, q{<}, $channel_map_file_name or die $!; my %channel_map = map { chomp; my @mapping = split /,/; $mapping[0] => $mapping[1] # not needed, just being explicit. } <$CHANNEL_MAP>; close $CHANNEL_MAP or die $!; # source ID file passed as a command line argument while (<>) { chomp; print "$_ = $channel_map{$_}\n" if exists $channel_map{$_}; } 

However, this seems a little pointless, since all you seem to want to do is filter out the channel map file using existing source identifiers. In this case, you can simply index the original identification file (use the above technique), and then just go to the channel mapping file and print each line for which the identifier exists in your source identifiers.

+4
source

All this is pretty fuzzy, since you do not know about the formats of your files.

But, suppose you have a file named names.txt that says a name in the format "15431 = MyTV8", one per line, and you have another file that lists only numbers, you can use something like this:

 #!/usr/bin/perl open NAMES, '< names.txt' or die $@ ; my %names = map { /(\d+) = (.+)/; ($1, $2) } (<NAMES>); while (<>) { chomp; if (exists $names{$_}) { print "$_ = $names{$_}\n"; } else { print "$_\n"; } } 
0
source

All Articles