awk print specific columns one row at a time


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk print specific columns one row at a time
# 1  
Old 08-02-2011
Error awk print specific columns one row at a time

Hello,

I have the following piece of code:


roleName
=`cat $inputFile | awk -F';' '{ print $1 }'`

roleDescription


=`cat $inputFile | awk -F';' '{ print $2 }'`

roleAuthProfile


=`cat $inputFile | awk -F';' '{ print $3 }'`

mappedUserID


=`cat $inputFile | awk -F';' '{ print $4 }'`

mapType


=`cat $inputFile | awk -F';' '{ print $5 }'`
userID=`cat $inputFile | awk -F';' '{ print $6 }'`

What I'm trying to do is extract input from specific columns for a script. I'm using the ";" as my delimeter.

The problem I'm having is that even though I'm putting this code in a loop, I'm getting the value of the whole column as my variable rather than the string within the delimiter.


(for properties in $inputfile
do: the piece of code above
done)

I want to get one line at a time from the specified column.

Does anyone know what I could be doing wrong?


# 2  
Old 08-02-2011
That's a useless use of cat, you don't need to run cat all the time.

What does your input data look like and what data from it do you want? There's probably better ways than running awk in backticks all the time too, like
Code:
while IFS=";" read roleName roleDescription roleAuthProfile mappedUserID mapType userID G
do
        echo "column 1 is ${roleName}"
        ...
done < infile

This is more straightforward and hundreds of times faster.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 08-02-2011
Study this example:
Code:
% cat >INPUTFILE
x;y;z
% IFS=';' read a b c <INPUTFILE
% echo $a $b $c
x y z

# 4  
Old 08-02-2011
Oops.
# 5  
Old 08-02-2011
Input Data Format

Role_1_Name_Example; Role Description 1; DB Auth Profile 1; user1; 1; user1@DBG.ADS.DB.COM
Role_2_Name_Example; Role Description 2; DB Auth Profile 2; user2; 999; user2@DBG.ADS.DB.COM
Role_3_Name_Example; Role Description 3; DB Auth Profile 3; user3; 999; user3@DBG.ADS.DB.COM
Role_4_Name_Example; Role Description 4; DB Auth Profile 4; user4; 1; user4@DBG.ADS.DB.COM
Role_5_Name_Example; Role Description 5; DB Auth Profile 5; user5; 1; user5@DBG.ADS.DB.COM
# 6  
Old 08-02-2011
Quote:
Originally Posted by pr0tocoldan
Role_1_Name_Example; Role Description 1; DB Auth Profile 1; user1; 1; user1@DBG.ADS.DB.COM
Role_2_Name_Example; Role Description 2; DB Auth Profile 2; user2; 999; user2@DBG.ADS.DB.COM
Role_3_Name_Example; Role Description 3; DB Auth Profile 3; user3; 999; user3@DBG.ADS.DB.COM
Role_4_Name_Example; Role Description 4; DB Auth Profile 4; user4; 1; user4@DBG.ADS.DB.COM
Role_5_Name_Example; Role Description 5; DB Auth Profile 5; user5; 1; user5@DBG.ADS.DB.COM
Great, now please answer the other half of my question:
Quote:
Originally Posted by Corona688
...and what data from it do you want?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using awk to change a specific column and in a specific row

I am trying to change the number in bold to 2400 01,000300032,193631306,190619,0640,1,80,,2/ 02,193631306,000300032,1,190618,0640,CAD,2/ I'm not sure if sed or awk is the answer. I was going to use sed and do a character count up to that point, but that column directly before 0640 might... (8 Replies)
Discussion started by: juggernautjoee
8 Replies

2. Shell Programming and Scripting

Convert Second Column Date Into EPOCH Time And Print Complete Row

Hello Team, I am stuck in getting the required output in the following case. Please help. My input file is aa|08/01/2016 bb|08/15/2016 I wish to convert the file into aa|epoch time bb|epoch time I am using following code: (3 Replies)
Discussion started by: angshuman
3 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

Grep and print only certain columns from a row

Hi Friends, This is my input chr1 100 200 + gene_name "alpha"; protein_name "alpha"; level 2; tag "basic"; info "known"; chr1 245 290 + gene_name "alpha-1"; protein_name "alpha-2"; level 9; tag "basic"; info "uknown"; chr1 310 320 + gene_name "alpha"; protein_name "alpha-4"; level 2; info... (3 Replies)
Discussion started by: jacobs.smith
3 Replies

5. Shell Programming and Scripting

Print unique names in each row of a specific column using awk

Is it possible to remove redundant names in the 4th column? input cqWE 100 200 singapore;singapore AZO 300 400 brazil;america;germany;ireland;germany .... .... output cqWE 100 200 singapore AZO 300 400 brazil;america;germany;ireland (4 Replies)
Discussion started by: quincyjones
4 Replies

6. Shell Programming and Scripting

awk compare specific columns from 2 files, print new file

Hello. I have two files. FILE1 was extracted from FILE2 and modified thanks to help from this post. Now I need to replace the extracted, modified lines into the original file (FILE2) to produce the FILE3. FILE1 1466 55.27433 14.72050 -2.52E+03 3.00E-01 1.05E+04 2.57E+04 1467 55.27433... (1 Reply)
Discussion started by: jm4smtddd
1 Replies

7. Shell Programming and Scripting

Need awk help to print specific columns with as string in a header

awk experts, I have a big file of 4000 columns with header. Would like to print the columns with string value of "Commands" in header. File has "," separator. This file is on ESX host with Bash. Thanks, Arv (21 Replies)
Discussion started by: arv_cds
21 Replies

8. Shell Programming and Scripting

Print columns from each row

I have awk command to print column 8 awk '/select/ {print $8}' which will print column 8 But I need to print 3, 5 and 8 column in a row and each column should be de-limited by "\t" Hope anyone help me quickly. (2 Replies)
Discussion started by: elamurugu
2 Replies

9. Shell Programming and Scripting

shell script(Preferably awk or sed) to print selected number of columns from each row

Hi Experts, The question may look very silly by seeing the title, but please have a look at it clearly. I have a text file where the first 5 columns in each row were supposed to be attributes of a sample(like sample name, number, status etc) and the next 25 columns are parameters on which... (3 Replies)
Discussion started by: ks_reddy
3 Replies

10. Shell Programming and Scripting

Insert a text from a specific row into a specific column using SED or AWK

Hi, I am having trouble converting a text file. I have been working for this whole day now, still i couldn't make it. Here is how the text file looks: _______________________________________________________ DEVICE STATUS INFORMATION FOR LOCATION 1: OPER STATES: Disabled E:Enabled ... (5 Replies)
Discussion started by: Issemael
5 Replies
Login or Register to Ask a Question