awk problem


 
Thread Tools Search this Thread
Special Forums UNIX Desktop Questions & Answers awk problem
# 1  
Old 06-24-2011
awk problem

I have two file one file contain student data
Code:
101|suresh|45|25|45|chennai 
102|gopal|89|78|50|hyd 
103|lakshmi|45|65|35|hyd
104|kavitha|65|68|40|banglore 
105|tiru|35|42|30|chennai

another file contain the program is
Code:
while read line
do
var=$(awk -F "|" '{if ( NR == 1 ) print $0 }')
echo "$var"
done < student.txt

while executing which print the second record..pls tel me the exact problem
if i write the code
Code:
awk -F "|" '{if ( NR == 1 ) print $0 }'

which give the output...pls help me

Last edited by Franklin52; 06-24-2011 at 04:05 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 06-24-2011
where is the input for awk command ?

where u specified ?
# 3  
Old 06-24-2011
awk problem

firstly I read through while loop....see that done < file name...

---------- Post updated at 12:38 PM ---------- Previous update was at 12:36 PM ----------

Code:
awk -F "|" '{if ( NR == 1 ) print $0 }' student.txt

which gives the first record of 101|suresh file ...

---------- Post updated at 12:39 PM ---------- Previous update was at 12:38 PM ----------

but for this cod which give second output
Code:
while read line do var=$(awk -F "|" '{if ( NR == 1 ) print $0 }') echo "$var" done < student.txt


Last edited by Franklin52; 06-24-2011 at 04:11 AM.. Reason: Please use code tags for code and data samples, thank you
This User Gave Thanks to mrbinoy For This Post:
# 4  
Old 06-24-2011
The whole idea is flawed. What is wrong with

Code:
[mute@geek ~/test]$ awk -F"|" 'NR == 1' students.txt
101|suresh|45|25|45|chennai

You are reading by redirection in bash each line into $line, you exec awk for each line but never send awk the line. I suppose you'd need to $(echo $line | awk) but then the NR would always be 1 since it's a separate process each time. You gobble the first line with the 'read' statement, then awk is opened upon stdin, where it does get the rest of the file by redirection. If you keep the loop (bad idea anyway) but don't read, you can get all of it I guess

Code:
[mute@geek ~/test]$ while [ -n "$var" ]; do var=$(awk -F "|" '{ print NR "  " $0 }'); echo "$var"; done < students.txt
1  101|suresh|45|25|45|chennai
2  102|gopal|89|78|50|hyd
3  103|lakshmi|45|65|35|hyd
4  104|kavitha|65|68|40|banglore
5  105|tiru|35|42|30|chennai


Last edited by neutronscott; 06-24-2011 at 04:39 AM.. Reason: explanation.
This User Gave Thanks to neutronscott For This Post:
# 5  
Old 06-24-2011
awk problem

dude it is not working,can u give another idea?
# 6  
Old 06-24-2011
Quote:
Originally Posted by mrbinoy
dude it is not working,can u give another idea?
Sure. Do you have your newly modified code to post, or an example of what you're trying to do with the data?
# 7  
Old 06-25-2011
I tried the code which you have given,,but what is
while [ -n "$var" ] loop coding..how this execute.last one week I am learning UNIX,pls help me
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk problem

Hi I have two columns and I would like to create a third column based on how many lines away from a value of 1 in column 2, for example I have 1,0 2,0 3,0 4,0 5,0 6,1 7,0 8,0 9,0 10,0 11,1 And I want an output (6 Replies)
Discussion started by: garethsays
6 Replies

2. Shell Programming and Scripting

awk problem

i have an email list in file.txt with comma separated line1 - FIELD1,pippo@gmail.com,darth@gmail.com line2 - FIELD2,pippo@gmail.com,darth@gmail.com,sampei@gmail.com output=(awk -F ',' -v var="$awkvar" '$1==var {print $2,$3,$4}' spreadsheet.txt)but awk delete some letters at the... (8 Replies)
Discussion started by: pasaico
8 Replies

3. Shell Programming and Scripting

awk problem - combining awk statements

i have a datafile that has several lines that look like this: 2,dataflow,Sun Mar 17 16:50:01 2013,1363539001,2990,excelsheet,660,mortar,660,4 using the following command: awk -F, '{$3=strftime("%a %b %d %T %Y,%s",$3)}1' OFS=, $DATAFILE | egrep -v "\-OLDISSUES," | ${AWK} "/${MONTH} ${DAY}... (7 Replies)
Discussion started by: SkySmart
7 Replies

4. UNIX for Dummies Questions & Answers

Little problem with AWK

I thought I had solved this problem but after testing the script I came to realize that it is not doing what I need. So, here it goes again. This is the code: awk '/\>/{F=$2; N=$3; split(FILENAME, A, "."); getline; x = ">"}{print ">" A"-" x++" "F" " N"\n" $0}' This is the input file: ... (5 Replies)
Discussion started by: Xterra
5 Replies

5. Shell Programming and Scripting

awk problem

Find the number of files with sizes > 100KB in /, /bin, /usr, /usr/bin and /usr/sbin directories and output them in a two column format with the name of the directory and the number of files. i tried with awk $>ls -lh | awk '/^-/ && $5 >= 100k {print $8 $5}' but it is not working pls tell... (3 Replies)
Discussion started by: abhikamune
3 Replies

6. Shell Programming and Scripting

Problem with awk awk: program limit exceeded: sprintf buffer size=1020

Hi I have many problems with a script. I have a script that formats a text file but always prints the same error when i try to execute it The code is that: { if (NF==17){ print $0 }else{ fields=NF; all=$0; while... (2 Replies)
Discussion started by: fate
2 Replies

7. Shell Programming and Scripting

Awk problem: How to express the single quote(') by using awk print function

Actually I got a list of file end with *.txt I want to use the same command apply to all the *.txt Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics. For example: I got the file below: file1.txt file2.txt file3.txt... (4 Replies)
Discussion started by: patrick87
4 Replies

8. Shell Programming and Scripting

problem using awk

Hi there every body I'm new to shell scripting and there is a problem facing me,, please look at the following piece of code: awk ' BEGIN{ FS="<assertion id=\1"; RS="<assertion id=\"2"}/<assertion id=\"1/{print FS$2 > "/home/ds2/test/output.txt"} ' filename all I wanna do is to... (6 Replies)
Discussion started by: senior_ahmed
6 Replies

9. Shell Programming and Scripting

Problem with AWK

Hi All, How can i store a value of the unix command executed in AWK with system command. devise=`cut -c1-3 dvgp.txt` I wrote this command in awk as awk'{ code= sprintf("devise=`cut -c1-3 dvgp.txt`"); system(code); }' Is this correct. can you please suggest me how the code can be... (1 Reply)
Discussion started by: krishna_gnv
1 Replies

10. UNIX for Dummies Questions & Answers

AWK Problem

Hi, I posted something here about this yesterday but I can't seem to find it. I needed help writting a script which would append a file with new lines after every so many charachters. Example: (my original flat file) L60 LETTER OF CREDIT 60 DAYS W00 ON RECEIPT WIRE TRANSFER W30 NET... (12 Replies)
Discussion started by: gseyforth
12 Replies
Login or Register to Ask a Question