Print from second column onwards if $1<=40 using awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print from second column onwards if $1<=40 using awk
# 1  
Old 01-12-2010
Print from second column onwards if $1<=40 using awk

I have a file like below

Code:
10 10 21 32 43 54  
20 10 25 36 47 58
30 19 20 31 42 53
40 10 24 35 46 57
50 10 28 39 40 51

I need to check if $1 <= 40, then print from $2 onwards.
If $1 > 40, the line is not printed.

So I would have an output like this

Code:
10 21 32 43 54  
10 25 36 47 58
19 20 31 42 53
10 24 35 46 57

# 2  
Old 01-12-2010
if the no of fields will be 6 always,
the simple soln is:

Code:
/home->awk '$1<=40{ print $2,$3,$4,$5,$6}' f
10 21 32 43 54
10 25 36 47 58
19 20 31 42 53
10 24 35 46 57
/home->

# 3  
Old 01-12-2010
The problem is that I cannot directly use $2 $3 $4 one next to each other. I can have any number of fields on each line.
# 4  
Old 01-12-2010
Quote:
Originally Posted by kristinu
The problem is that I cannot directly use $2 $3 $4 one next to each other. I can have any number of fields on each line.
Try this:
Code:
awk '$1 <= 40{ $1=""; $0=$0; $1=$1; print}' file

# 5  
Old 01-12-2010
Code:
awk '$1<=40 { $0=substr($0, index($0,$2)); print $0 } 
       $1>40 {print $0 } ' infile > outfile

# 6  
Old 01-12-2010
I have tried this

Code:
$1 <= 40 {
  $1 = ""; sub(/^[ \t]+/, ""); print
}

# 7  
Old 01-12-2010
then you can try something like this:
Code:
/home->awk '$1 <=40{ $1="";record=$0; gsub("^ ","",record);print record }' f
10 21 32 43 54
10 25 36 47 58
19 20 31 42 53
10 24 35 46 57
/home->



---------- Post updated at 11:39 PM ---------- Previous update was at 11:35 PM ----------

other solutions already provided.
you can use any of.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk - $9 and onwards

How can I get awk to print all fields from $9 and onwards? (2 Replies)
Discussion started by: locoroco
2 Replies

2. Shell Programming and Scripting

Need awk or Shell script to compare Column-1 of two different CSV files and print if column-1 matche

Example: I have files in below format file 1: zxc,133,joe@example.com cst,222,xyz@example1.com File 2 Contains: hxd hcd jws zxc cst File 1 has 50000 lines and file 2 has around 30000 lines : Expected Output has to be : hxd hcd jws (5 Replies)
Discussion started by: TestPractice
5 Replies

3. Shell Programming and Scripting

Awk: Print count for column in a file using awk

Hi, I have the following input in a file & need output as mentioned below(need counter of every occurance of field which is to be increased by 1). Input: 919143110065 919143110065 919143110052 918648846132 919143110012 918648873782 919143110152 919143110152 919143110152... (2 Replies)
Discussion started by: siramitsharma
2 Replies

4. Shell Programming and Scripting

awk Print New Column For Every Two Lines and Match On Multiple Column Values to print another column

Hi, My input files is like this axis1 0 1 10 axis2 0 1 5 axis1 1 2 -4 axis2 2 3 -3 axis1 3 4 5 axis2 3 4 -1 axis1 4 5 -6 axis2 4 5 1 Now, these are my following tasks 1. Print a first column for every two rows that has the same value followed by a string. 2. Match on the... (3 Replies)
Discussion started by: jacobs.smith
3 Replies

5. Shell Programming and Scripting

awk command to print only selected rows in a particular column specified by column name

Dear All, I have a data file input.csv like below. (Only five column shown here for example.) Data1,StepNo,Data2,Data3,Data4 2,1,3,4,5 3,1,5,6,7 3,2,4,5,6 5,3,5,5,6 From this I want the below output Data1,StepNo,Data2,Data3,Data4 2,1,3,4,5 3,1,5,6,7 where the second column... (4 Replies)
Discussion started by: ks_reddy
4 Replies

6. Shell Programming and Scripting

Print column with awk

Hi Masters , Need your help regarding the below issue . I am creating a new file with awk where diff rows in a particular column will different according to the user i/p. If user i/p is 10,11 and 12 and requests for 6 rows then in a particular column will print with 10 10 11 11 12... (6 Replies)
Discussion started by: Pratik4891
6 Replies

7. Shell Programming and Scripting

Need to different value print in same column by awk

Hi , i am trying to prepare a text file by awk . My code is like below echo "$a $b $c $d $e $f $g $h "|nawk '{for(i=1;i<=5;i++){printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n", $1 , $2 ,$3 ,$4 ,$5 ,$6 ,$7 ,$8)}}' >> tempfile.txt Now my req is $d will print as per user req . if user inputs... (2 Replies)
Discussion started by: Pratik4891
2 Replies

8. Shell Programming and Scripting

find expression with awk in only one column, and if it fits, print whole column

Hi. How do I find an expression with awk in only one column, and if it fits, then print that whole column. 1 apple oranges 2 bannanas pears 3 cats dogs 4 hesaid shesaid echo "which number:" read NUMBER (user inputs number 2 for this example) awk " /$NUMBER/ {field to search is field... (2 Replies)
Discussion started by: glev2005
2 Replies

9. UNIX and Linux Applications

Replace string in unix from 10th column onwards

Hi All, I need to replace the last 19 bytes of the following string My_Org_Testing_20090102_231124.txt (Text_Date_Time.txt). I would like to derive the current time using "date +%Y%m%d_%H%M%S.txt" and replace the last 19 bytes of the above string I would appreciate if someone could... (3 Replies)
Discussion started by: rpk2008
3 Replies

10. Shell Programming and Scripting

to print column using awk

suppose u have a file aaaaa aswn 33332 aasdxe sssee 627627 qqhksd dljlljkl 38682682 so have a output 3332 627627 38682682 (2 Replies)
Discussion started by: cdfd123
2 Replies
Login or Register to Ask a Question