Visit Our UNIX and Linux User Community


How to read n number of lines from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to read n number of lines from a file
# 15  
Old 10-13-2009
Try this:
Code:
var=10
filename=file
xargs -n $var < $filename | awk '{ max=0; for(i=1;i<=NF;i++) if ($i > max) max=$i; print max; }'

Use the same logic in loop to handle multiple files.
# 16  
Old 10-13-2009
Hi,
Try this ,

Code:
#!/bin/sh

read -p "Enter your filename: " filename
read -p "Enter count: " cnt

line_cnt=`cat $filename | wc -l`

loops=`echo $line_cnt / $cnt | bc`
loop_add=`echo $line_cnt % $cnt | bc`
[ $loop_add -gt 0 ] && loops=`expr $loops + 1` || loops=$loops

for (( i=1 ; i <= $loops ; i++ ))
do
        high_num=`tail -$line_cnt $filename | head -$cnt | sort -nr | head -1`
        line_cnt=`expr $line_cnt - $cnt`
        echo "count $i HIGHEST NO :- $high_num"
done

echo "total number of count = $cnt and total no of loops - $loops"

# 17  
Old 10-14-2009
Hi jp2542a


ur code works perfectly,but the thing it takes the count as from 0 but i want is it should take count as from 1

Code:
Enter file name
file3
Enter the number
4
count0
biggest no is 6
count1
biggest no is 100
count2
biggest no is 1000
count3
biggest no is 16
total count is 4

this is the output given by the program

but what i need is

Code:
Enter file name
file3
Enter the number
4

count1
biggest no is 6
count2
biggest no is 100
count3
biggest no is 1000
count4
biggest no is 16

total count is 4

Help me plzzzzzzzzzzzImageImage

And plzzzzzzzzzzzzzzzzz explain me program also

Its urgent PLzzzzzzzzzzz rpy me as soon as possible


Tanx!!!!!!

Last edited by Franklin52; 02-16-2010 at 06:59 AM.. Reason: Please use code tags!
# 18  
Old 10-15-2009
Replace the awk line with this in the shell script:

Code:
awk -v count=$n 'BEGIN{ i=0; } {k = $1; for (j=1; j<count; j++) {getline; if ( $1 > k ) k = $1; } print "count" ++i; print "biggest no is " k} END {print "total count is " i}' $file


As for what it means... This says set the awk internal variable count to the input

Code:
-v count=$n

This tells awk to initialize i to 0

Code:
BEGIN{ i=0; }


This is the beginning of a clause that says set variable k to the value of the first field of the input line. it will be done for every line.

Code:
{k = $1;

This bit says check each of the following count-1 lines to see if the value is greater than the current k (high) value. if it is, the it becomes the new k.

Code:
for (j=1; j<count; j++) {getline; if ( $1 > k ) k = $1; }

This prints out the biggest value (k) and ends the loop

Code:
print "biggest no is " k}

This is executed when we run out of input and prints the counter

Code:
END {print "total count is " i}

This is the name of the input file

Code:
$file

# 19  
Old 10-15-2009
tanx

Thanx tanx a lot, the reason im keep on asking help is bcoz of im very much new for shell scripting



Tanx!!!!!!SmilieSmilieSmilie
# 20  
Old 10-22-2009
Help!!

hi

i have shell scripting for finding the maximum number
now i want to find both maximum and minimum number

i attach the program and output and also file content


myfile(contents)

Code:
260
10
10
250
100
1
1
1
1
2
1
3
4
5
8
2.7
44
4
3
4
4
5
5
7
100
10
03
25
200
160
300
6000



program

Code:
#!/bin/bash
echo "Enter file name"
read file
echo "Enter the number"
read n
awk -v count=$n 'BEGIN{ i=0; } {k = $1; for (j=1; j<count; j++) {getline; if ( $1 > k ) k = $1 } print "count" i; i++; print "biggest no is " k;} END {print "total count is " i}' $file > output

output

Code:
Enter file name
myfile
Enter the number
4

vi output
count0
biggest no is 260
count1
biggest no is 100
count2
biggest no is 3
count3
biggest no is 8
count4
biggest no is 44
count5
biggest no is 7
count6
biggest no is 100
count7
biggest no is 6000
total count is 8


In the above output what i need is


output

Code:
Enter file name
myfile
Enter the number
4

vi output
count0
smallest no is 10
biggest no is 260
count1
smallest no is 1
biggest no is 100
count2
smallest no is 1
biggest no is 3
count3
smallest no is 2.7
biggest no is 8
count4
smallest no is 3
biggest no is 44
count5
smallest no is 4
biggest no is 7
count6
smallest no is 03
biggest no is 100
count7
smallest no is 160
biggest no is 6000
total count is 8

i belive my question would have been clear

plzzzzzzzzz anyone help meSmilieSmilie

kindly requesting!!

Thanks!!

---------- Post updated at 11:41 AM ---------- Previous update was at 01:07 AM ----------

hi

the program i tried is

Code:
#!/bin/bash
echo "Enter file name"
read file
echo "Enter the number"
read n
awk -v count=$n 'BEGIN{ i=0; } {k = $1; m = $1; for (j=1; j<count; j++) {getline; if ( $1 > k ) k = $1; if ( $1 < m ) m = $1;} print "count" ++i; print "smallest is " m; print "biggest no is " k} END{print "total count is " i}' $file


file content is (data)

Code:
6
3
2.3
5
0.3
2.6
100
21
2000
5
3
3
8
9
10
2000
12


my output is

Code:
Enter file name
data
Enter the number
4

count1
smallest is 2.3
biggest no is 6
count2
smallest is 0.3
biggest no is 100
count3
smallest is 3
biggest no is 2000
count4
smallest is 8
biggest no is 2000
count5
smallest is 
biggest no is 12
total count is 5

while there is left only one number in last i want the output like this given below
Code:
.
.
.
.
.
.
count5
only one number is left 12
total count is 5

then while taking 5set of no's my output is like this

Code:
Enter file name
data
Enter the number
5
count1
smallest is 0.3
biggest no is 6
count2
smallest is 2.6
biggest no is 2000
count3
smallest is 3
biggest no is 10
count4
smallest is 
biggest no is 2000
total count is 4

but it should display like this as given below

Code:
.
.
.
.
.
count4
smallest is 12
biggest no is 2000
total count is 4


plzzzzzzzzzz anyone help meSmilieSmilieSmilie

Tanx in advance

Last edited by Franklin52; 02-16-2010 at 07:01 AM.. Reason: Please use code tags!
# 21  
Old 10-26-2009
hi SmilieSmilieSmilie

im very much new for shell scripting

plzzzzzzzz anyone help meSmilieSmilieSmilie

i have a file content
Code:
1 2 3 4 5 6 
3 5 6 
7 9 3 2 4 4 6 6 
.......
.......
.....

for this i need the output like
Code:
1 2 3 4 5 6 average=3.5
3 5 6 average=4.6666
7 9 3 2 4 4 6 6 average=5.125


i think i should use "awk -f"

but im stucked hw to use for this


plzzzzzzzz help me


Thanks in advanceSmilieSmilieSmilie

Last edited by Franklin52; 02-16-2010 at 07:01 AM.. Reason: Please use code tags!

Previous Thread | Next Thread
Test Your Knowledge in Computers #383
Difficulty: Medium
Solaris 2.5.1 was registered as UNIX 95 compliant on the PReP PowerPC platform.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to read a file starting at certain line number?

I am new to ksh scripts. I would like to be able to read a file line by line from a certain line number. I have a specific line number saved in a variable, say $lineNumber. How can I start reading the file from the line number saved in $lineNumber? Thanks! (4 Replies)
Discussion started by: dcowboys13
4 Replies

2. Shell Programming and Scripting

How to read a number from a file?

hello guys, I'm struggled to get a number from a very long text file. NAtoms= 33 NActive= 30 NUniq= 23 SFac= 1.00D+00 NAtFMM= 60 NAOKFM=F Big=F Integral buffers will be 131072 words long. Raffenetti 2 integral format. The number 33 is what I wanted, always follows NAtoms=... (5 Replies)
Discussion started by: liuzhencc
5 Replies

3. Shell Programming and Scripting

Read line with particular number of lines

Hi all, I have a file sample.txt abc asd adf daf adw add adv wdf I want to control the number of lines to read Like if i give input as ./script_name 2 5 required output asd adf daf (2 Replies)
Discussion started by: krux_rap
2 Replies

4. UNIX for Dummies Questions & Answers

When reading a csv file, counter to read 20 lines and wait for minute then read next 20 till end

Hello All, i am a newbie and need some help when reading a csv file in a bourne shell script. I want to read 10 lines, then wait for a minute and then do a reading of another 10 lines and so on in the same way. I want to do this till the end of file. Any inputs are appreciated ... (3 Replies)
Discussion started by: victor.s
3 Replies

5. UNIX for Dummies Questions & Answers

How to read contents of a file from a given line number upto line number again specified by user

Hello Everyone. I am trying to display contains of a file from a specific line to a specific line(let say, from line number 3 to line number 5). For this I got the shell script as shown below: if ; then if ; then tail +$1 $3 | head -n $2 else ... (5 Replies)
Discussion started by: grc
5 Replies

6. UNIX for Dummies Questions & Answers

Read directory files and count number of lines

Hello, I'm trying to create a BASH file that can read all the files in my working directory and tell me how many words and lines are in that file. I wrote the following code: FILES="*" for f in "$FILES" do echo -e `wc -l -w $f` done My issue is that my file is outputting in one... (4 Replies)
Discussion started by: jl487
4 Replies

7. Shell Programming and Scripting

Number lines of file and assign variable to each number

I have a file with a list of config files numbered on the lefthand side 1-300. I need to have bash read each lines number and assign it to a variable so it can be chosen by the user called by the script later. Ex. 1 some data 2 something else 3 more stuff which number do you... (1 Reply)
Discussion started by: glev2005
1 Replies

8. Shell Programming and Scripting

Read the specified line number from file

Hi Guys, I am new to unix. Actually i want help in writing an single command where i can actually read specific line number in file where the line number will be passed to command as parameter. ex. 1 a 2 b 3 c 4 d And to my command i pass as 2. so i should get output as 2 b ... (15 Replies)
Discussion started by: kam786sim
15 Replies

9. Shell Programming and Scripting

Read a number from file and place it back

Hi All, I want to read one number from the file. Only one number will be there in the file. then i have to increment the number in my script and put it back in the same file. Is it possible? Can anybody help me? Thanks, Vinay (6 Replies)
Discussion started by: vinayakatj56
6 Replies

10. Shell Programming and Scripting

To read and separate number and words in file and store to two new file using shell

hi, I am a begginer in unix and i want to know how to open a file and read it and separate the numbers & words and storing it in separate files, Using shell scripting. Please help me out for this. Regards S.Kamakshi (2 Replies)
Discussion started by: kamakshi s
2 Replies

Featured Tech Videos