Print columns matching to specific values


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print columns matching to specific values
# 1  
Old 06-06-2012
Print columns matching to specific values

Hello Friends,

I have a CDR file and i need to print out 2 columns with their field position which matches to some constant values,

a part of input file
Code:
CZ=1|CZA=1|DIAL=415483420001|EE=13|ESF=1|ET=[16/04/2012][10:44:46:435]|FF=0|9|MNC=99|MNP=9041|MTC=0|NID=2|NOA=international|ON=1|

Code:
OutPut

3,DIAL=415483420001|13,NOA=international


i need to print out the colums which matches constant "DIAL" and "NOA" values, but the field of these values changing from records to records so i cant print a constant columns like $3 and $13...

I tried something but failed, working first time on AIX,

i know the answer somewhere in the database somehow i couldnt find it.. appreciate any help,

BR
# 2  
Old 06-06-2012
Code:
perl -F'\|' -ane 'for($i=0;$i<@F;$i++){($F[$i] =~ /DIAL|NOA/) && print $i+1,",$F[$i]|"}; print "\n"' inputfile

This User Gave Thanks to balajesuri For This Post:
# 3  
Old 06-06-2012
Code:
$ awk -F\| '{for(i=1;i<=NF;i++)if($i~/DIAL|NOA/)printf(" %s %s|",i,$i)}{print ""}' input.txt
 3 DIAL=415483420001| 13 NOA=international|

if you dont want the | as the last character then pipe the output to sed command

Code:
sed 's/|$//'

This User Gave Thanks to itkamaraj For This Post:
# 4  
Old 06-07-2012
Quote:
Originally Posted by itkamaraj
Code:
$ awk -F\| '{for(i=1;i<=NF;i++)if($i~/DIAL|NOA/)printf(" %s %s|",i,$i)}{print ""}' input.txt
 3 DIAL=415483420001| 13 NOA=international|

if you dont want the | as the last character then pipe the output to sed command

Code:
sed 's/|$//'

Different than my first question ifi need to change FF=0 Fields as FF=1 how could i manipulate the code?

Code:
awk -F\| '{for(i=1;i<=NF;i++)if($i~/^FF/)print($i="1")}{print ""}' input.txt

prints only "1" the value of FF column Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to print lines that have values in certain columns ?

Hi, everyone I have a dataset like this: A B C D A C C D E F G H F D K Y X A K K C Gsome of columns have no values in each line. I want to print all lines that have 1/2/3/4 values, export separately to four files. What I expected is like this: file1 Y file 2 A C X Afile 3... (3 Replies)
Discussion started by: nengcheng
3 Replies

2. UNIX for Dummies Questions & Answers

Print only the duplicate line only with matching columns

Hi There, I have an I/P which looks like -- 1 2 3 4 5 1 2 3 4 6 4 7 8 9 9 5 6 7 8 9 I would like O/P to be --- 1 2 3 4 5 1 2 3 4 6 So, printing only the consecutive lines where $1,$2,$3,$4 are matching. Is there any command to do this or small awk script? Thanks, (12 Replies)
Discussion started by: Indra2011
12 Replies

3. Shell Programming and Scripting

Match columns and print specific field

Hello, I have data in following format. ... (6 Replies)
Discussion started by: Pushpraj
6 Replies

4. Shell Programming and Scripting

Returning specific columns upon matching

Hi All, Need help in this requirement. I have fileA with one column and fileB with 26 columns. I need to match the value from fileA with fileB, if matches I have to return that value from fileB, and the next value, 5th and 6th values. NOTE- the matching value's position changes in... (7 Replies)
Discussion started by: vamsikrishna928
7 Replies

5. UNIX for Dummies Questions & Answers

Sorting columns for specific values

Dear All, i have a column with values in excel table: ATGC22327-p66 ATGC15922-p239 ATGC12710-p21743567 ATGC08037-p186 ATGC07969-p173 ATGC07345-p48534 ATGC02767-p254234 ATGC02124-p2177451 ATGC02124-p1459 ATGC01930-p3005 I need to... (6 Replies)
Discussion started by: AAWT
6 Replies

6. Shell Programming and Scripting

How to print in awk matching $1 values ,to $1,$4 example given.?

Hi Experts, I am trying to get the output from a matching pattern but unable to construct the awk command: file : aa bb cc 11 dd aa cc 33 cc 22 45 68 aa 33 44 44 dd aa cc 37 aa 33 44 67 I want the output to be : ( if $1 match to "aa" start of the line,then print $4 of that line, and... (3 Replies)
Discussion started by: rveri
3 Replies

7. Shell Programming and Scripting

Compare values in two files. For matching rows print corresponding values from File 1 in File2.

- I have two files (File 1 and File 2) and the contents of the files are mentioned below. - I am trying to compare the values of Column1 of File1 with Column1 of File2. If a match is found, print the corresponding value from Column2 of File1 in Column5 of File2. - I tried to modify and use... (10 Replies)
Discussion started by: Santoshbn
10 Replies

8. Shell Programming and Scripting

selecting record by matching in two columns values

Hi Guys ! i want to search a record in file by matching two values in a record in two different columns suppose i have 3 columns and i want to select all those values from col1 for which in col3 has a specific value e.g select all "john" from column1 where column 3 has a value of "20" ... (9 Replies)
Discussion started by: ourned
9 Replies

9. Shell Programming and Scripting

Copy values from columns matching in those in second file.

Hi All, I have two sets of files. Set 1: 100 text files with extension .txt with names like 1.txt, 2.txt, 3.txt until 100.txt Set 2: One big file with extension .dat The text files have some records in columns like this: 0.7316431 82628 0.7248189 82577 0.7248182 81369 0.7222999... (1 Reply)
Discussion started by: shoaibjameel123
1 Replies

10. Shell Programming and Scripting

compare two columns of different files and print the matching second file..

Hi, I have two tab separated files; file1: S.No ddi fi cu o/l t+ t- 1 0.5 0.6 o 0.1 0.2 2 0.2 0.3 l 0.3 0.4 3 0.5 0.8 l 0.1 0.6 ... (5 Replies)
Discussion started by: vasanth.vadalur
5 Replies
Login or Register to Ask a Question