Visit Our UNIX and Linux User Community


Summing over specific lines and replacing the lines with the sum


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Summing over specific lines and replacing the lines with the sum
# 1  
Old 07-05-2012
Summing over specific lines and replacing the lines with the sum

Hi friends,

This is sed & awk type question. It is slightly different from my previous question.

I have a text file which has numbers spread all over the file. I want to sum the series of numbers (but no more than 10 numbers in series) whenever i find it and produce an output file with the sum. For example

###start of input text file ####
Code:
abc
def
ghi
1
2
3
4
5
6
7
8
9
10
11
12
13
kjld
random
text
occupies
some
1000
3000
400
again
some
random
text
900
100
whatever
is here
900
11
what

#####end of input file #########

The output should be

##start of output file ####
Code:
abc
def
ghi
55
36
kjld
random
text
occupies
some
4400
again
some
random
text
1000
whatever
is here
911
what

########### end of output file #################

So the output file is the same as the input file, except the series of numbers (where series consists of ten or less consecutive numbers) is replace by its sum.

I hope it makes sense. If not, please let me know any questions.

Kind Regards,
# 2  
Old 07-05-2012
Let me know ,what desired output you want?
This User Gave Thanks to bmk For This Post:
# 3  
Old 07-05-2012
bmk dude

The desired output is shown right below the input data

Here you go again

abc
def
ghi
55
36
kjld
random
text
occupies
some
4400
again
some
random
text
1000
whatever
is here
911
what
# 4  
Old 07-05-2012
try this...
Code:
 
 
$ awk '{if($0~/^[0-9]*$/){a+=$0;c++}if(c>=10){print a;a=c=0}if($0!~/^[0-9]*$/){if(a!=0 && c<10){print a"\n"$0;a=0}else{print}}}' input.txt
abc
def
ghi
55
36
kjld
random
text
occupies
some
4400
again
some
random
text
1000
whatever
is here
911
what

This User Gave Thanks to itkamaraj For This Post:
# 5  
Old 07-05-2012
itkamaraj.

Thanks a lot due.

Really appreciate

Previous Thread | Next Thread
Test Your Knowledge in Computers #92
Difficulty: Easy
The Unix ls command can only lists files in the current directory.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to print lines from a files with specific start and end patterns and pick only the last lines?

Hi, I need to print lines which are matching with start pattern "SELECT" and END PATTERN ";" and only select the last "select" statement including the ";" . I have attached sample input file and the desired input should be as: INPUT FORMAT: SELECT ABCD, DEFGH, DFGHJ, JKLMN, AXCVB,... (5 Replies)
Discussion started by: nani2019
5 Replies

2. Shell Programming and Scripting

ksh sed - Extract specific lines with mulitple occurance of interesting lines

Data file example I look for primary and * to isolate the interesting slot number. slot=`sed '/^primary$/,/\*/!d' filename | tail -1 | sed s'/*//' | awk '{print $1" "$2}'` Now I want to get the Touch line for only the associate slot number, in this case, because the asterisk... (2 Replies)
Discussion started by: popeye
2 Replies

3. Shell Programming and Scripting

awk summing specific lines and fields

Hi I would like to know if it is possible to sum some specific fields. I have this x;x;x;x;x;x;x;x;467,390,611 Bytes;0.435291 GB;0.062247 GB;0.373045 GB;11,225;157 a;a;a;a;a;a;a;a;13,805,156,846 Bytes;12.857054 GB;1.838559 GB;11.018495 GB;151,063;18,933 b;b;b;b;b;b;b;b;232,797,478,723... (5 Replies)
Discussion started by: nakaedu
5 Replies

4. UNIX for Dummies Questions & Answers

Summing lines in a file

Can anyone tell me how sum values in each record of a file and append that value to the end? For instance a typical record will be: FY12,Budget,771100,,,,,,,,,250,-250 I'd like the record to become FY12,Budget,771100,,,,,,,,,250,-250,0 which can be put into another file. Thank you. (6 Replies)
Discussion started by: LearningLinux2
6 Replies

5. Shell Programming and Scripting

Summing over specific lines and replacing the lines with the sum using sed, awk

Hi friends, This is sed & awk type question. I have a text file which has numbers spread all over the file. I want to sum the series of numbers whenever i find it and produce an output file with the sum. For example ###start of input text file #### abc def ghi 1 2 3 4 kjld random... (3 Replies)
Discussion started by: kaaliakahn
3 Replies

6. UNIX for Dummies Questions & Answers

Finding lines with a regular expression, replacing them with blank lines

So the tag for this forum says all newbies welcome... All I want to do is go through my file and find lines which contain a given string of characters then replace these with a blank line. I really tried to find a simple command to do this but failed. Here's what I did come up with though: ... (2 Replies)
Discussion started by: Golpette
2 Replies

7. Shell Programming and Scripting

Replacing specific lines with another lines

Hi, I have a file with many lines, then i have following list of lines(line number 5,12,19,5,and 28) i need to replace these lines of a file with another lines as shown below these text contains special charecter like= (/:;){} Line_number Text to replace with 5 abc... (1 Reply)
Discussion started by: MILAN KUMAR
1 Replies

8. Shell Programming and Scripting

Help in replacing two blank lines with two lines of diff data

Hi.. I'm facing a trouble in replacing two blank lines in a file using shell script... I used sed to search a line and insert two blank lines after the searchd line using the following sed command. sed "/data/{G;G;}/" filename . In the file, after data tag, two lines got inserted blank lines..... (4 Replies)
Discussion started by: arjun_arippa
4 Replies

9. Shell Programming and Scripting

replacing new lines in all files of a directory containing old lines

Hi all, I am trying to replace a few lines with other lines of all files in a directory which contain those few lines. say - there are some 10 files in a dir having the same 4 lines as 1.txt at the starting 1.txt line 1 line 2 line 3 line 4 ....................................... (1 Reply)
Discussion started by: rooster005
1 Replies

10. Shell Programming and Scripting

replacing specific lines in a file

Hi there I have a file which has the lines # Serial number for hostid EXP_SERIAL_="" These lines could be anywhere in the file as far as line numbers go, I would like replace these two lines with # Serial number for hostid $var1 EXP_SERIAL_$var1="$var2" Is there a quick and simple... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

Featured Tech Videos