print every 20 lines the lowest number


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting print every 20 lines the lowest number
# 1  
Old 07-25-2011
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
Code:
name1
-0.1
name2
2
name3
3
name4
-3
name5
1
name6
2
name7
34
name8
34
name9
21
name10
1
name11
2
name12
65
name13
5
name14
7
name15
8
name16
0.5
name17
-32
name18
-7
name19
0
name20
-142

and I want to print
Code:
name4 \t -3
name20 \t -142

is there a nice way to do this?
# 2  
Old 07-25-2011
Don't know if you will consider this nice:
Code:
awk '!((NR-1)%20){n[int((NR-1)/20)]=$0;getline;a[int((NR-2)/20)]=$1}(NR%2){t=$0;getline;if (a[int((NR-2)/20)]>$1) {a[int((NR-2)/20)]=$1;n[int((NR-2)/20)]=t}};END{for (i=0;i<NR/20;i++){print n[i]"\t"a[i]}}' file

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 07-25-2011
And another one:

Code:
awk 'END {
  if ( !( c % l ) && nr != NR )
     print n, m
    }
{
  if ( /^[0-9-]/ ) {
    m == "" && m == 0 && m = $1
    $1 < m && m = $1
    if ( !( ++c % l ) ) {
      print n, m
      m = $1; nr = NR	  
      }
    }
  else n = $0
  }' OFS='\t' l=10 infile


Last edited by radoulov; 07-25-2011 at 11:19 AM.. Reason: Corrected.
This User Gave Thanks to radoulov For This Post:
# 4  
Old 07-25-2011
Try if the below one works..
Code:
awk '/^[a-z]/{s=$0;getline;{if(x>int($0)){c=s;x=$0}};++n} n==10{print c,x;n=""}' inputfile

# 5  
Old 07-25-2011
wow! that was quick! Thank both fro the scripts - although bartus' script is a bit faster, radoulov's script is more understandable by me!

thank you both guys i appreciate it a lot, and i really like that the community is helping each other.

---------- Post updated at 07:55 AM ---------- Previous update was at 07:54 AM ----------

Quote:
Originally Posted by michaelrozar17
Try if the below one works..
Code:
awk '/^[a-z]/{s=$0;getline;{if(x>int($0)){c=s;x=$0}};++n} n==10{print c,x;n=""}' inputfile

no, it is not working - giving me empty lines
# 6  
Old 07-25-2011
OK,
the line that is checking if the variable m is defined should be like this:

Code:
m == "" && m == 0 && m = $1

Fixed some bugs:

Code:
awk 'END {
  if ( !( c % l ) && nr != NR )
     print n, m
    }
{
  if ( /^[0-9-]/ ) {
    m == "" && m == 0 && m = $1
    $1 < m && m = $1
    if ( !( ++c % l ) ) {
      print n, m
      m = $1; nr = NR	  
      }
    }
  else n = $0
  }' OFS='\t' l=10 infile


Last edited by radoulov; 07-25-2011 at 11:19 AM..
# 7  
Old 07-25-2011
Quote:
Originally Posted by TheTransporter
no, it is not working - giving me empty lines
Its works at my end based on your input file format in post# 1.
Code:
> awk '/^[a-z]/{s=$0;getline;{if(x>int($0)){c=s;x=$0}};++n} n==10{print c,x;n=""}' inputfile
name4 -3
name20 -142

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. Shell Programming and Scripting

Sort from highest to lowest number

Hi Guys, I am looking for a way to sort the output below from the "Inuse" count from Highest to Lowest. Is it possible? Thanks in advance. user1 0.12 0.06 0 0.12 User Inuse Pin Pgsp Virtual Unit:... (4 Replies)
Discussion started by: jaapar
4 Replies

3. 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

4. Shell Programming and Scripting

Perl: find next available lowest number that is available in two arrays

Hi there. I have a number allocation problem whereby I have 2 arrays built from 2 different sources. The arrays will just contain a listed of sorted numbers @a 1 7 10 14 15 16 @b 1 7 10 11 14 15 16 (2 Replies)
Discussion started by: hcclnoodles
2 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

ksh program that finds the lowest number in a .txt file

i am having a problem finding the lowest number after punching in a bunch of numbers in the .txt file but its probably the way i have the code set up. help please! (4 Replies)
Discussion started by: tinsteer
4 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. 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

9. Shell Programming and Scripting

Korn Shell - Finding lowest number of a file.

I'm writing a KSH script that will get a file on the command line (such as input.txt), and in this file there is on number per line. The program needs to take the file, read each and determine the lowest number in the file. I currently have a while loop setup that will correctly out put every... (8 Replies)
Discussion started by: denyal
8 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