Extract Field from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract Field from a file
# 1  
Old 09-19-2011
Question Extract Field from a file

I have an input file with content like :

18:51:18 | 217863|Acct 0110855565|RC 17608| 16 Subs| 1596 UsgRecs| 2 Secs| 430 CPUms| prmis2:26213 <MoveUsage d
aemon needs to run on this account before it can be billed.>
23:03:30 | 896529|Acct 2063947620|RC 17608| 8 Subs| 148 UsgRecs| 1 Secs| 280 CPUms| prbru6: 244 <MoveUsage d
aemon needs to run on this account before it can be billed.>


I need to extract acct nbr <in Bold letters> and need to put them in a new file liny by line..can any one please help me out in this :-/
# 2  
Old 09-19-2011
Expecting your file is a plain text so try this...

Code:
awk -F\| '{for(i=0;++i<=NF;) if($i ~ /Acct/) print $i}' infile

This User Gave Thanks to malcomex999 For This Post:
# 3  
Old 09-19-2011
Simple grep solution
Code:
grep -o 'Acct [0-9]*' inputfile
# Or through Sed
sed -n 's/.*Acct \([0-9][0-9]*\).*/\1/p' inputfile

This User Gave Thanks to michaelrozar17 For This Post:
# 4  
Old 09-19-2011
Bug

I tried the one you have given...Thanks for the help..Its almost worked..
But I need a small correction..
Am getting the output as :

Acct 0110855565
Acct 2063947620

Can you make correction to the above solution to get the output as :
0110855565
2063947620
# 5  
Old 09-19-2011
Code:
awk -F'[| ]*' '{print $4}' infile
cut -c24-33 infile

# 6  
Old 09-19-2011
Quote:
Originally Posted by malcomex999
Expecting your file is a plain text so try this...

Code:
awk -F\| '{for(i=0;++i<=NF;) if($i ~ /Acct/) print $i}' infile


I tried the one you have given...Thanks for the help..Its almost worked..
But I need a small correction..
Am getting the output as :

Acct 0110855565
Acct 2063947620

Can you make correction to the above solution to get the output as :
0110855565
2063947620

---------- Post updated at 07:40 AM ---------- Previous update was at 07:39 AM ----------

I tried the one you have given...Thanks for the help..Its almost worked..
But I need a small correction..
Am getting the output as :

Acct 0110855565
Acct 2063947620

Can you make correction to the above solution to get the output as :
0110855565
2063947620
# 7  
Old 09-19-2011
Did you try Sed or other awk solutions..?
Code:
grep -oE '[0-9]{9,}' inputfile # assuming minimum of 9 digits for Acc numbers

This User Gave Thanks to michaelrozar17 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Command to extract empty field in a large UNIX file?

Hi All, I have records in unix file like below. In this file, we have empty fields from 4th Column to 22nd Column. I have some 200000 records in a file. I want to extract records only which have empty fields from 4th field to 22nd filed. This file is comma separated file. what is the unix... (2 Replies)
Discussion started by: rakeshp
2 Replies

2. Shell Programming and Scripting

Extract lines whose third field is 0

Hi, I have a file with colon separated values like below. How can i get those lines whose third field is 0 (zero). In the below example, lines starting with stapler and tempo has its third field as 0 $ cat list.txt galaxy:b:5:world stapler:a:0:hello abc:a:4:stomper kepler:uic:5:jam... (8 Replies)
Discussion started by: John K
8 Replies

3. Shell Programming and Scripting

Extract a nth field from a comma delimited file

Hi, In my file (which is "," delimited and text qualifier is "), I have to extract a particualr field. file1: 1,"aa,b",4 expected is the 2nd field: aa,b I tried the basic cut -d "," -f 2 file 1, this gave me aa alone instead aa,b. A small hint ot help on this will be very... (5 Replies)
Discussion started by: machomaddy
5 Replies

4. Shell Programming and Scripting

extract data in a csv file based on a certain field.

I have a csv file that I need to extract some data from depending on another field after reading info from another text file. The text file would say have 592560 in it. The csv file may have some data like so Field 1 Field2 Field3 Field4 Field5 Field6 20009756 1 ... (9 Replies)
Discussion started by: GroveTuckey
9 Replies

5. Shell Programming and Scripting

Extract file records based on some field conditions

Hello Friends, I have a file(InputFile.csv) with the following columns(the columns are pipe-delimited): ColA|ColB|ColC|ColD|ColE|ColF Now for this file, I have to get those records which fulfil the following condition: If "ColB" is NOT NULL and "ColD" has values one of the following... (9 Replies)
Discussion started by: mehimadri
9 Replies

6. UNIX for Dummies Questions & Answers

Extract Field Value from XML file

Hi, Within a UNIX shell script I need to extract a value from an XML field. The field will contain different values but will always be 6 digits in length. E.g.: <provider-id>999999</provider-id> I've tried various ways but no luck. Any ideas how I might get the provider id (in this case... (2 Replies)
Discussion started by: pnclayt11
2 Replies

7. Shell Programming and Scripting

Extract data into file with specific field specs

:confused: I have a tab delimited file that I need to extract data from and into a file with specific field specs. Each field has to be a certain amount of characters. So, the name field (from delimited file) might have only 15 characters but needs to be 25 (in new file) so I need to insert spaces... (5 Replies)
Discussion started by: criddel
5 Replies

8. Shell Programming and Scripting

how to extract last occurence of the field

path = /first/second/third/fourth. i want to extract /first/second/third from path.my program something like this .... path=/first/second/third/fourth noc=`echo $path|tr '/' '\n'|wc -w` var='echo $noc|cut -d'/' -f 1-$noc --> is giving error. why $noc is not working here.any other... (3 Replies)
Discussion started by: kcp_pavan
3 Replies

9. UNIX for Dummies Questions & Answers

extract a field by logic

below are the contents of file 'tmp.out': 2|34|534| 1|355|54| 1|443|34| 3|43|768| 3|7|887| 1|9|990| How do I extract the 2nd and 3rd columns of file 'tmp.out' only when the first column equals '1'. Note that this file will be huge; atleast 5million+ rows, so I want to avoid looping... (4 Replies)
Discussion started by: ChicagoBlues
4 Replies

10. UNIX for Dummies Questions & Answers

Trying to extract a field from /etc/passwd file..

Hello, was looking for some help on extracting a field from the passwd file. So far I have made a copy of the passwd file and changed my rights so I can edit it. Every user's password is coded as an :x:, and my goal was to change that x to a blank, and then try to extract any user with that field... (2 Replies)
Discussion started by: xBuRnTx
2 Replies
Login or Register to Ask a Question