AWK print line no.x to line no.y


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK print line no.x to line no.y
# 1  
Old 09-09-2011
AWK print line no.x to line no.y

I am learning AWK and quite fresh now.

My Q: How could I use AWK to print lines from e.g. first to 8th, or 5th to 9th?

Thanks!!!
# 2  
Old 09-09-2011
Code:
#From 1 to 8
awk 'NR<=8 {print}' file

#Between 5 and 9 inclusive
awk 'NR>=5 && NR<=9 {print}' file

You can use FNR if you have multiple files.
NR is the total number of records for all the files.
FNR is specific to each file bring processed. FNR will be reset when a new file comes in.

Try this code to find the difference
Code:
awk '{print NR "-" FNR}' file1 file2

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 3  
Old 09-09-2011
Quote:
Originally Posted by ahamed101
Code:
#From 1 to 8
awk 'NR<=8 {print}' file

#Between 5 and 9 inclusive
awk 'NR>=5 && NR<=9 {print}' file

You can use FNR if you have multiple files.
NR is the total number of records for all the files.
FNR is specific to each file bring processed. FNR will be reset when a new file comes in.

Try this code to find the difference
Code:
awk '{print NR "-" FNR}' file1 file2

--ahamed
Thanks Ahamed!! It works. But then, if I just want to print one line, say 9th line.
Code:
awk 'NR =9 {print}' FILENAME

gave me all the lines in the file. How can I just print one specific line according to line number then?

Thanks again!!
# 4  
Old 09-09-2011
Quote:
Originally Posted by cristalp
...
Code:
awk 'NR =9 {print}' FILENAME

gave me all the lines in the file. How can I just print one specific line according to line number then?
...
You have to compare and not assign.

Code:
$
$
$ cat f20
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
$
$ awk 'NR==9 {print}' f20
This is line 9
$
$
$ awk 'NR=9 {print}' f20
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
$
$

Comparison is true only for line 9, hence it prints only line 9.
Assignment is true for each line, hence it prints each line.

tyler_durden
This User Gave Thanks to durden_tyler For This Post:
# 5  
Old 09-15-2011
Quote:
Originally Posted by durden_tyler
You have to compare and not assign.

Code:
$
$
$ cat f20
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
$
$ awk 'NR==9 {print}' f20
This is line 9
$
$
$ awk 'NR=9 {print}' f20
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
$
$

Comparison is true only for line 9, hence it prints only line 9.
Assignment is true for each line, hence it prints each line.

tyler_durden
Thanks Tyler. Now I understand. Thanks for the excellent explanation!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to print the line that matches and the next if line is wrapped

I have a file and when I match the word "initiators" in the first column I need to be able to print the rest of the columns in that row. This is fine for the most part but on occasion the "initiators" line gets wrapped to the next line. Here is a sample of the file. caw-enabled ... (3 Replies)
Discussion started by: kieranfoley
3 Replies

2. Shell Programming and Scripting

awk print everything in new line

Hi, I have the following file and I would like to print everything to new line and the field seperator should be the dash (-). /usr/java/jdk1.6.0_30/bin/java -Dprogram.name=run.sh -server -XX:PermSize=512m -XX:MaxPermSize=512m -XX:NewSize=1g -XX:MaxNewSize=1g -Xmx3g -Xms3g... (3 Replies)
Discussion started by: kmaq7621
3 Replies

3. Shell Programming and Scripting

awk script -print line when $2 > $2 of previous line

Hi all, From a while loop I am reading a sorted file where I want to print only the lines that have $1 match and $2 only when the difference from $2 from the previous line is > 30. Input would be like ... AN237 010 193019 0502 1 CSU Amoxycillin AN237 080 ... (2 Replies)
Discussion started by: gafoleyo73
2 Replies

4. UNIX for Dummies Questions & Answers

awk...print first line...

hello all, I am trying to use the AWK cmd on unix and trying to figre out how i can only print the first line and now rest of the line...so for example... $ lsnrctl version|grep Version| awk '{print $5}'| awk -F. '{print $1}'|uniq 11 NT Adapter for but i only want 11 to print out there... (3 Replies)
Discussion started by: abdul.irfan2
3 Replies

5. Shell Programming and Scripting

awk to print on the same line

Hi all, I've a script that uses awk to parse the output of wget during a database update. The code I use is: wget -c ftp://ftpsite/file 2>&1 | awk '/0%/ {print}'But this spits out each progress line on a new line: 37250K .......... .......... .......... .......... .......... 80% 10.9M 1s ... (2 Replies)
Discussion started by: euval
2 Replies

6. Shell Programming and Scripting

awk, Why does it print the same line twice?

awk '{print ; print '""'}' in.txt >inf.txt (2 Replies)
Discussion started by: cola
2 Replies

7. Shell Programming and Scripting

awk print the next line on the current line

Ok I have a file with hundreds of lines, four columns, space delimited, TESTB.TXT for example TESTB.TXT --- AA ZZ 12 34 BB YY 56 78 CC XX 91 23 DD VV 45 67 --- I want a new file that has 7 columns, the first four are identical, and the next 3 are the last three of the next line...so... (5 Replies)
Discussion started by: ajp7701
5 Replies

8. Shell Programming and Scripting

awk help required to group output and print a part of group line and original line

Hi, Need awk help to group and print lines to format the output as shown below INPUT FORMAT set echo on set heading on set spool on /* SCHEMA1 */ CREATE TABLE T1; /* SCHEMA1 */ CREATE TABLE T2; /* SCHEMA1 */ CREATE TABLE T3; /* SCHEMA1 */ CREATE TABLE T4; /* SCHEMA1 */ CREATE TABLE T5;... (5 Replies)
Discussion started by: rajan_san
5 Replies

9. Shell Programming and Scripting

print any required line by its line no using awk and its NR variable

how to print any required line by its line no using awk and its NR variable for eg: ------------ 121343 adfdafd 21213sds dafadfe432 adf.adf%adf --------------- requied o/p if give num=3 it print: 21213sds -------------------------------------- (2 Replies)
Discussion started by: RahulJoshi
2 Replies

10. UNIX for Dummies Questions & Answers

awk print line

Hi All, I know that i can print the lines from awk just using the print method, but i need to print stuff before it i.e: BEGIN { i=0 } { i++ print i ")" print } END { } Here the output is: (7 Replies)
Discussion started by: Chiefos
7 Replies
Login or Register to Ask a Question