Help with print out line that have different record in specific column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with print out line that have different record in specific column
# 15  
Old 02-24-2014
Hi anbu23,

I got one more question might need your advice in thread#23.

Kindly let me know if you got any idea about it.
Thanks.

---------- Post updated at 10:58 PM ---------- Previous update was at 10:54 PM ----------

Hi ahamed101,

Below just few case of different input :
Input file 1
Code:
-       45472   46630
+       46817   47600
-       48573   49767

Desired Output file 1
Code:
-       45472   46630
+       46817   47600
+       46817   47600
-       48573   49767

Input file 2
Code:
+       81446   82784
-       82843   83058
+       89725   90700

Desired Output file 2
Code:
+       81446   82784
-       82843   83058
-       82843   83058
+       89725   90700

Basically I just wanna duplicate previous record if it shown as "- + -" or "+ - +" becomes "- + + -" or "+ - - +"

Sorry for confusing you Smilie
# 16  
Old 02-25-2014
Try this...
Code:
awk 'p && $1 != p{print v; print}{p=$1;v=$0}'  infile

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 17  
Old 02-25-2014
Quote:
Originally Posted by perl_beginner
Dear Don Cragun,

Really thanks and appreciate your input.
Thanks for spending your time to guide me and explain your awk program in detail.

Super thanks you.

---------- Post updated at 10:42 PM ---------- Previous update was at 09:54 PM ----------

Dear Don Cragun,

After run your awk program, I got one similiar question need your advice :

... ... ...

Basically I hope that able to duplicate the record if it shown as "- + -" or "+ - +" becomes "- + + -" or "+ - - +".

Kindly let me know if you not too sure about what I ask.
Thanks again.
From the comments in my code in message #12 in this thread, can you figure out which line needs to change so an input line will be printed twice when the 1st field changes on three consecutive lines? If you can figure out which line needs to change, can you figure out how to change it?
# 18  
Old 02-25-2014
Hi Don Cragun,

Is it I should change the line :
Code:
print f0 $0    #       Print the saved line and the current line.  The
                  #       print command adds a newline at the end of
                  #       whatever it prints.
       f0 = ""   #       Clear the saved line.  (We do not want to print
                   #       the current line twice if the 1st field in the
                    #       next line does not match the 1st field in this
                    #       line.)

# 19  
Old 02-25-2014
Yes, one of those lines is it. If you change:
Code:
        f0 = ""         #       Clear the saved line.  (We do not want to print
                        #       the current line twice if the 1st field in the
                        #       next line does not match the 1st field in this
                        #       line.)

to:
Code:
        f0 = $0 "\n"    #       Save the current line with a newline for output
                        #       when we see a different value in the 1st field.
                        #       ($0 is the current line without the terminating
                        #       newline character.)

it should do what you want.

If you re-read this thread, you might notice that the script ahamed101 provided in message #5 in this thread is a condensed version of this script. My comment in message $6 in this thread pointed out that that script did what you are now requesting instead of doing what you originally requested.
These 2 Users Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Overwrite specific column in xml file with the specific column from adjacent line

I have an xml file dumped from rrd file, that I want to "patch" so the xml file doesn't contain any blank hole in the resulting graph of the rrd file. Here is the file. <!-- 2015-10-12 14:00:00 WIB / 1444633200 --> <row><v> 4.0419731265e+07 </v><v> 4.5045912770e+06... (2 Replies)
Discussion started by: rk4k
2 Replies

2. Shell Programming and Scripting

Help with print out record if first and next line follow specific pattern

Input file: pattern1 100 250 US pattern2 50 3050 UK pattern3 100 250 US pattern1 70 1050 UK pattern1 170 450 Mal pattern2 40 750 UK . . Desired Output file: pattern1 100 250 US pattern2 50 3050 UK pattern1 170 450 Mal pattern2... (3 Replies)
Discussion started by: cpp_beginner
3 Replies

3. Shell Programming and Scripting

How to print multiple specific column after a specific word?

Hello.... Pls help me (and sorry my english) :) So I have a file (test.txt) with 1 long line.... for example: isgc jsfh udgf osff 8462 error iwzr 653 idchisfb isfbisfb sihfjfeb isfhsi gcz eifh How to print after the "error" word the 2nd 4th 5th and 7th word?? output well be: 653 isfbisfb... (2 Replies)
Discussion started by: marvinandco
2 Replies

4. Shell Programming and Scripting

Problem facing to compare different column and print out record with smallest number

Hi, Input file 1 : 37170 37196 77 51 37174 37195 73 52 37174 37194 73 53 Desired Output file 1 : 37170 37196 77 51 Input file 2 : 37174 37195 73 0 37170 37196 77 0 Desired Output file 2 : 37174 37195 73 0 (1 Reply)
Discussion started by: cpp_beginner
1 Replies

5. Shell Programming and Scripting

Problem to print out record got smallest number in specific column

Hi, Anybody know how to print out the record that shown smallest number among column 3 and column 4 Case 1 Input : 37170 37196 77 51 37174 37195 73 52 37174 37194 73 53 Case 1 Output : 37170 37196 77 51 Case 2 Input : 469613 469660 73 ... (4 Replies)
Discussion started by: cpp_beginner
4 Replies

6. Shell Programming and Scripting

Execution problem with print out record that follow specific pattern

Hi, Do anybody know how to print out only those record that column 1 is "a" , then followed by "b"? Input file : a comp92 2404242 2405172 b comp92 2405303 2406323 b comp92 2408786 2410278 a comp92 2410271 2410337 a comp87 1239833 1240418 b comp87... (3 Replies)
Discussion started by: patrick87
3 Replies

7. Shell Programming and Scripting

awk to print record not equal specific pattern

how to use "awk" to print any record has pattern not equal ? for example my file has 5 records & I need to get all lines which $1=10 or 20 , $2=10 or 20 and $3 greater than "130302" as it shown : 10 20 1303252348212B030 20 10 1303242348212B030 40 34 1303252348212B030 10 20 ... (14 Replies)
Discussion started by: arm
14 Replies

8. Shell Programming and Scripting

Print first and last line from multiline record

Hi - I'm new to working with multiline records and I'm going nuts trying to do something that seems simple. Input: Tue May 1 14:00 Header Record 1 is valid. Tue May 1 14:00 processing data to 25-Mar-2012 09:00:23.15 Tue May 1 14:03 Header Record 1 is valid. Tue May 1 14:03 processing data... (4 Replies)
Discussion started by: Catullus
4 Replies

9. Shell Programming and Scripting

print first few lines, then apply regex on a specific column to print results.

abc.dat tty cpu tin tout us sy wt id 0 0 7 3 19 71 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.0 133.2 0.0 682.9 0.0 1.0 0.0 7.2 0 79 c1t0d0 0.2 180.4 0.1 5471.2 3.0 2.8 16.4 15.6 15 52 aaaaaa1-xx I want to skip first 5 line... (4 Replies)
Discussion started by: kchinnam
4 Replies

10. Shell Programming and Scripting

Question about sort specific column and print other column at the same time !

Hi, This is my input file: ali 5 usa abc abu 4 uk bca alan 6 brazil bac pinky 10 utah sdc My desired output: pinky 10 utah sdc alan 6 brazil bac ali 5 usa abc abu 4 uk bca Based on the column two, I want to do the descending order and print out other related column at the... (3 Replies)
Discussion started by: patrick87
3 Replies
Login or Register to Ask a Question