How do I print out lines with the same number in front using awk?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How do I print out lines with the same number in front using awk?
# 1  
Old 03-18-2010
How do I print out lines with the same number in front using awk?

Hi,

I need help in printing out the dates with the largest value in front of it using awk.

436 28/Feb/2008
436 27/Feb/2008
436 20/Feb/2008
422 13/Feb/2008
420 23/Feb/2008
409 21/Feb/2008
402 26/Feb/2008
381 22/Feb/2008
374 24/Feb/2008
360 18/Feb/2008
357 15/Feb/2008
356 19/Feb/2008
352 06/Feb/2008
350 11/Feb/2008
346 25/Feb/2008
327 16/Feb/2008
327 01/Feb/2008
323 08/Feb/2008
321 12/Feb/2008
317 14/Feb/2008

eg, so here, the output should be

28/Feb/2008
27/Feb/2008
20/Feb/2008

Can anyone help me with this?
# 2  
Old 03-18-2010
Using sed
Code:
sed 's/.* //' input_filename

Here the input_file will contain the data as
Code:
436 28/Feb/2008
436 27/Feb/2008
436 20/Feb/2008
422 13/Feb/2008
420 23/Feb/2008
409 21/Feb/2008
402 26/Feb/2008
381 22/Feb/2008
374 24/Feb/2008
360 18/Feb/2008
357 15/Feb/2008
356 19/Feb/2008
352 06/Feb/2008
350 11/Feb/2008
346 25/Feb/2008
327 16/Feb/2008
327 01/Feb/2008
323 08/Feb/2008
321 12/Feb/2008
317 14/Feb/2008

Now the output after executing I got is
Code:
28/Feb/2008
27/Feb/2008
20/Feb/2008
13/Feb/2008
23/Feb/2008
21/Feb/2008
26/Feb/2008
22/Feb/2008
24/Feb/2008
18/Feb/2008
15/Feb/2008
19/Feb/2008
06/Feb/2008
11/Feb/2008
25/Feb/2008
16/Feb/2008
01/Feb/2008
08/Feb/2008
12/Feb/2008
14/Feb/2008

Are you expecting like this? or according to the large value of the date it should be ordered?

Last edited by thillai_selvan; 03-18-2010 at 02:51 AM..
# 3  
Old 03-18-2010
Hi SIFA,you try the following script to do your task.

Code:
i=0
while read line
do
arr[$i]=`echo $line | cut -d ' ' -f 1`
let i+=1
done < input

val=0
for((j=0;j<$i;j++))
do
if [[ ${arr[$j]} -gt $val ]];then
val=${arr[$j]}
fi
done

sed -rn "s/${val} (.*)/\1/p" input

In my code,input is the input file which contains the input as you described in your question.


Hello Thillai,I think you misunderstood the requirement.Kindly refer it and change your answer.
# 4  
Old 03-18-2010
Try this

Code:
grep "`awk '{print $1}' filename  | sort -nr | uniq | head -1`" filename | awk '{print $2}'

# 5  
Old 03-18-2010
Sorry Now only I got the requirement. The value in front of the date should be the greatest value means we need to print that date. Am I correct?

---------- Post updated at 11:20 AM ---------- Previous update was at 11:12 AM ----------

Sorry for misunderstanding. Another simple way
Code:
max=`sort -k 1 input | cut -d' ' -f 1 | sort -u | tail -n 1`
sed -rn "s/${max} (.*)/\1/p" input

# 6  
Old 03-18-2010
try this :
Code:
uniq -Dw4 infile | cut -d' ' -f2

# 7  
Old 03-18-2010
Quote:
Originally Posted by frans
try this :
Code:
uniq -Dw4 infile | cut -d' ' -f2

This is not giving the desired output.
Here the dates

28/Feb/2008
27/Feb/2008
20/Feb/2008

only having the greatest value in front of it(which is 436).
So dates
16/Feb/2008
01/Feb/2008

should not be get displayed. Please correct it
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Print number of lines for files in directory, also print number of unique lines

I have a directory of files, I can show the number of lines in each file and order them from lowest to highest with: wc -l *|sort 15263 Image.txt 16401 reference.txt 40459 richtexteditor.txt How can I also print the number of unique lines in each file? 15263 1401 Image.txt 16401... (15 Replies)
Discussion started by: spacegoose
15 Replies

2. UNIX for Beginners Questions & Answers

Advise on how to print range of lines above and below a number?

Hi, I have attached an output file which is some kind of database file mapping. It is basically like an allocation mapping of a tablespace and its datafile/s. The output is generated by the SQL script that I found from 401 Authorization Required Excerpts of the file are as below: ... (2 Replies)
Discussion started by: newbie_01
2 Replies

3. Shell Programming and Scripting

awk to find number in a field then print the line and the number

Hi I want to use awk to match where field 3 contains a number within string - then print the line and just the number as a new field. The source file is pipe delimited and looks something like 1|net|ABC Letr1|1530||| 1|net|EXP_1040 ABC|1121||| 1|net|EXP_TG1224|1122||| 1|net|R_North|1123|||... (5 Replies)
Discussion started by: Mudshark
5 Replies

4. Shell Programming and Scripting

How to print N number of lines before and after the grep?

Hi , My record file , need to print up to above (DATA array)(there may be n no lines ) , grep "myvalue" row now .....suggest me some options --- DATA Array--- record type xxxxx sequence type yyyyy 2 3---> data1 /dev/ --- DEVICE --- MAXIMUM_People= data_blocks= MY_value=2 xyz abc ... (0 Replies)
Discussion started by: Huvan
0 Replies

5. Shell Programming and Scripting

How to print lines that only have number lower than...

Hello guys, I am a beginner in Unix :wall: and was wondering if anyone could help me. I need a script that prints lines that only has Z-value lower than equals to (<=) 1.0e-02. Each column is seperated by a tab. 10009.fd Z-value = 3.62843e-03 10009.fd Z-value = 9.75489e-01... (3 Replies)
Discussion started by: narachaid
3 Replies

6. Shell Programming and Scripting

AWK print number of records, divide this number

I would like to print the number of records of 2 files, and divide the two numbers awk '{print NR}' file1 > output1 awk '{print NR}' file2 > output2 paste output1 output2 > output awl '{print $1/$2}' output > output_2 is there a faster way? (8 Replies)
Discussion started by: programmerc
8 Replies

7. Shell Programming and Scripting

print lines between line number

Hi, Anyone help me to print the lines from the flat file between 879th line number and 1424th line number. The 879 and 1424 should be passed as input to the shell script(It should be dynamic). Can any one give me using sed or awk? I tried using read, and print the lines..Its taking too... (3 Replies)
Discussion started by: senthil_is
3 Replies

8. Shell Programming and Scripting

print every 20 lines the lowest number

Hello all, How can I find the lowest number every 10 lines? For example i have a list name1 -0.1 name2 2 name3 3 name4 -3 name5 1 name6 2 name7 34 name8 34 (6 Replies)
Discussion started by: TheTransporter
6 Replies

9. SCO

Why? I can not change the number of lines to print

hi My problem now is that if shipping options as -o length = 88 it says the following: # lp -o length=88 -dhp4015 /etc/hosts UX:lp: ERROR: The following options can't be handled: -o length= TO FIX: The printer(s) that otherwise qualify for printing your request can't handle one or more of... (2 Replies)
Discussion started by: Edgar Guevara
2 Replies

10. Shell Programming and Scripting

How to print number of lines with awk ?

Can some body tell me how to print number of line from a particular file, with sed. ? Input file format AAAA BBBB CCCC SDFFF DDDD DDDD Command to print line 2 and 3 ? BBBB CCCC And also please tell me how to assign column sum to variable. I user the following command it... (1 Reply)
Discussion started by: maheshsri
1 Replies
Login or Register to Ask a Question