07-04-2006
Quote:
Originally Posted by rinku11
Hi All,
I have a file having content,
$ cat data1.txt
20060620 142 62310 959400 A 5.00
20060620 142 62310 959400 B 3.00
20060620 143 62310 959401 A 7.00
20060620 143 62310 959401 B 4.00
20060620 144 62310 959402 A 8.00
20060620 144 62310 959402 B 9.00
20060620 145 62310 959403 A 1.00
20060620 146 62310 959404 B 2.00
I need a awk file or one liner command, that will give me the output as below
20060620 142 62310 959400 A 8.00
20060620 142 62310 959400 B
20060620 143 62310 959401 A 11.00
20060620 143 62310 959401 B
20060620 144 62310 959402 A 17.00
20060620 144 62310 959402 B
20060620 145 62310 959403 A 1.00
20060620 146 62310 959404 B 2.00
Here the field separator is " ". For any two consecutive records, where $2 are same, $6 will be updated by adding rec1.$6+rec2.$6 for $5 = 'A' (first record) where as rec2.$6 will be substited by null( here $5 will be 'B' only, i.e second record). The records will remain unchange if $2 has one record only.
NOTE: For any value of $2, there can be maximum two records.
Thanks in advance,
Regards,
rin..
This should work
#! /bin/sh
while read line
do
key=`echo $line | awk '{print $2}'`
var=`echo $line | awk '{print $6}'`
awk -v key=${key} -v var=${var} 'key==$2 && var!=$6 {var2=var+$6;print $1,$2,$3,$4,$5,var2}' $1
done<$1>tempfile
sort -k 2,5 tempfile | awk '{if(NR%2!=0) print $0; else print $1,$2,$3,$4,$5}' > outputfile
rm -f tempfile
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi ,
what a wonderful command but so hard to maintain !
i have a file like that :
03/07/2006 05:58:45
03/07/2006 06:58:45
03/07/2006 07:58:50
03/07/2006 08:58:50
and i want to read it and keep only the lines with 3rd field less than 07:00:00
writing it in a second file !
... (2 Replies)
Discussion started by: Nicol
2 Replies
2. Shell Programming and Scripting
Could you please help me to achieve the below:
In a file I need to convert the multiple lines whose filed 1 and field 5 values are same into a single line but with the field 4 values comma separed as mentioned below. Fileds after 5 shall be discarded.
Also here by default all other remaining... (6 Replies)
Discussion started by: dhams
6 Replies
3. Shell Programming and Scripting
OK, so if $0 represent the entire record... can I change $2 and will that be reflected back in $0?
I think the following answers that YES, it does work. But is there anything I should be thinking about prior to doing this? What I am actually doing is part of 5 pages of scripting and awk... (1 Reply)
Discussion started by: joeyg
1 Replies
4. Shell Programming and Scripting
Hello
How do i check that correct input files are used while using AWk and SED for file manipulation?
e.g
awk '/bin/ {print $0 }' shell.txt
sed 's/hp/samsung/' printers.txt
how do i ensure that the correct input files I am working with are used? (5 Replies)
Discussion started by: Pauline mugisha
5 Replies
5. Shell Programming and Scripting
I have large number of data files, close to 300 files, lets say all files are same kind and have extension .dat , each file have mulitple lines in it.
There is a unique line in each file containing string 'SERVER'. Right after this line there is another line which contain a string 'DIGIT=0',... (4 Replies)
Discussion started by: sal_tx
4 Replies
6. Shell Programming and Scripting
I have got a sample file below(colon(:) is the field separator) . The data is like
col1:col2:col3:col4:col5:col6:col7:col8:col9:col10
11:12:012:aa:a a a:10::111:12:
311:321:320:caad::321:31:3333::
2:22:222::bbb::cads::2222:20
:::::12:1234::12:
:5:55::555:5555::::55550
Now I want to find... (9 Replies)
Discussion started by: rinku11
9 Replies
7. UNIX for Dummies Questions & Answers
Hello,
I am having issues generating the output file below from this input file:
Basically, what I want is if the ID= matches with the line below to print the first value in column 3 and the last value of column 4 for the matching ID's. The ID's can repeat more than twice, however, they... (2 Replies)
Discussion started by: verse123
2 Replies
8. Shell Programming and Scripting
Hi ,
I have a simple text file with contents as below:
12345678900 971,76 4234560890
22345678900 5971,72 5234560990
32345678900 71,12 6234560190
the new csv-file should be like:
Column1;Column2;Column3;Column4;Column5
123456;78900;971,76;423456;0890... (9 Replies)
Discussion started by: FreddyDaKing
9 Replies
9. Shell Programming and Scripting
Hallo Family,
I have csv file which has over a million records in it. All i want to do is to change field 2 to have the same value as field 10.
sample file:Now
0860093239,Anonymous,unconditional,+27381230283,Anonymous,unconditional,y,public,,2965511477:0A
Desired output:
... (2 Replies)
Discussion started by: kekanap
2 Replies
10. Shell Programming and Scripting
hello
I have example file
AA 11
BB 22
CC 33
And what I expect to have
-a AA=11 -a BB=22 -a CC=33
can anyone help how I have this using awk? (1 Reply)
Discussion started by: vikus
1 Replies
ASCII(7) Miscellaneous Information Manual ASCII(7)
NAME
ascii - the ASCII character set.
DESCRIPTION
The ASCII character set is as follows:
|000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
|010 bs |011 ht |012 nl |013 vt |014 np |015 cr |016 so |017 si |
|020 dle|021 dc1|022 dc2|023 dc3|024 dc4|025 nak|026 syn|027 etb|
|030 can|031 em |032 sub|033 esc|034 fs |035 gs |036 rs |037 us |
|040 sp |041 ! |042 " |043 # |044 $ |045 % |046 & |047 ' |
|050 ( |051 ) |052 * |053 + |054 , |055 - |056 . |057 / |
|060 0 |061 1 |062 2 |063 3 |064 4 |065 5 |066 6 |067 7 |
|070 8 |071 9 |072 : |073 ; |074 < |075 = |076 > |077 ? |
|100 @ |101 A |102 B |103 C |104 D |105 E |106 F |107 G |
|110 H |111 I |112 J |113 K |114 L |115 M |116 N |117 O |
|120 P |121 Q |122 R |123 S |124 T |125 U |126 V |127 W |
|130 X |131 Y |132 Z |133 [ |134 |135 ] |136 ^ |137 _ |
|140 ` |141 a |142 b |143 c |144 d |145 e |146 f |147 g |
|150 h |151 i |152 j |153 k |154 l |155 m |156 n |157 o |
|160 p |161 q |162 r |163 s |164 t |165 u |166 v |167 w |
|170 x |171 y |172 z |173 { |174 | |175 } |176 ~ |177 del|
|00 nul|01 soh|02 stx|03 etx|04 eot|05 enq|06 ack|07 bel|
|08 bs |09 ht |0A nl |0B vt |0C np |0D cr |0E so |0F si |
|10 dle|11 dc1|12 dc2|13 dc3|14 dc4|15 nak|16 syn|17 etb|
|18 can|19 em |1A sub|1B esc|1C fs |1D gs |1E rs |1F us |
|20 sp |21 ! |22 " |23 # |24 $ |25 % |26 & |27 ' |
|28 ( |29 ) |2A * |2B + |2C , |2D - |2E . |2F / |
|30 0 |31 1 |32 2 |33 3 |34 4 |35 5 |36 6 |37 7 |
|38 8 |39 9 |3A : |3B ; |3C < |3D = |3E > |3F ? |
|40 @ |41 A |42 B |43 C |44 D |45 E |46 F |47 G |
|48 H |49 I |4A J |4B K |4C L |4D M |4E N |4F O |
|50 P |51 Q |52 R |53 S |54 T |55 U |56 V |57 W |
|58 X |59 Y |5A Z |5B [ |5C |5D ] |5E ^ |5F _ |
|60 ` |61 a |62 b |63 c |64 d |65 e |66 f |67 g |
|68 h |69 i |6A j |6B k |6C l |6D m |6E n |6F o |
|70 p |71 q |72 r |73 s |74 t |75 u |76 v |77 w |
|78 x |79 y |7A z |7B { |7C | |7D } |7E ~ |7F del|
ASCII(7)