This is my personal feeling: It is well known that any dedicated compiled program, be it C, C++, Pascal, or other, usually benefit from increased execution speed compared to e.g. scripts. But there is a tradeoff in terms of flexibility vs. e.g. awk, perl esp. when it comes to text analysis and processing, and adapting / modelling algorithms, for which those were specifically targeted / designed.
I'd be very interested in any results comparing execution times of your C++ with an equivalent awk script, as they both will use the same regex system calls.
I hadn't seen this post, else I'd have responded sooner...
I'm not sure how to set a timer within the awk program to just time the replacing time itself, so the results will be based on the programs opening/searching for the key/replacing text/closing.
The word 'ad' was used as it has a long definition and is close to the beginning of the file (less search time).
The timer program:
The results:
Awk (regex):
1000x @ 2m08.22s real 2m04.66s user 0m05.01s system
C++ (regex):
1000x @ 15.24s real 0m13.44s user 0m01.53s system (8.4x faster than Awk)
C++ (custom search and replace - I'll post this code on the forum)
1000x @ 3.37s real 0m02.54s user 0m00.62s system (4.5x faster than C++ regex)
Timed within the programs themselves and only timing the search and replace process:
C++ (regex)
1000x @ 12.26s real 0m05.82s user 0m00.00s system
Ram used: 3mb
C++ (custom)
1000x @ 1.66s real 0m01.66s user 0m00.00s system
Ram used: > 1mb
Hi all,
This problem has cost me half a day, and i still do not know how to do.
Any help will be appreciated. Thanks advance.
I want to use a variable as the first parameters of gsub function of awk.
Example:
{
...
arri]=gsub(i,tolower(i),$1)
(which should be ambraced by //)
...
} (1 Reply)
Hello,
I have a variable that displays the following results from a JVM....
1602100K->1578435K
I would like to collect the value of 1578435 which is the value after a garbage collection. I've tried the following command but it looks like I can't get the > to work. Any suggestions as... (4 Replies)
Hi all
I want to do a simple substitution in awk but I am getting unexpected output. My function accepts a time and then prints out a validation message if the time is valid. However some times may include a : and i want to strip this out if it exists before i get to the validation. I have shown... (4 Replies)
Hi,
Can some one please explain the following line please throw some light on the ones marked in red
awk '{print $9}' ${FTP_LOG} | awk -v start=${START_DATE} 'BEGIN { FS = "." } { old_line1=$0; gsub(/\-/,""); if ( $3 >= start ) print old_line1 }' | awk -v end=${END_DATE} 'BEGIN { FS="." } {... (3 Replies)
I want to replace comma with space and "*646#" with space.
I am using the following code:
nawk -F"|" '{gsub(","," ",$3); gsub(/\*646\#/"," ",$3);print}' OFS="|" file
I am getting following error:
Help is appreciated (5 Replies)
Hey,
I would like to replace a string by a new one. Teh problem is that both strings should be variables to be flexible, because I am having a lot of files (with the same structure, but in different folders)
for i in daysim_*
do
cd $i/5/
folder=`pwd |awk '{print $1}'`
awk '{ if... (3 Replies)
Hi, I want to print the first column with original value and without any double quotes
The output should look like
<original column>|<column without quotes>
$ cat a.txt
"20121023","19301229712","100397"
"20121023","19361629712","100778"
"20121030A","19361630412","100838"... (3 Replies)
Hello,
I'm trying to substitute a string with leading zero for all the records except the trailer record using awk command and with variables. The input file test_med1.txt has data like below
1234ABC...........................9200............LF... (2 Replies)
Hi ALL,
I want to replace string occurrence in my file "Config" using a external file named "Mapping" using awk.
$cat Config
! Configuration file for RAVI
! Configuration file for RACHANA
! Configuration file for BALLU
$cat Mapping
ravi:ram
rachana:shyam
ballu:hameed
The... (5 Replies)
Discussion started by: useless79
5 Replies
LEARN ABOUT ULTRIX
time
time(1) General Commands Manual time(1)Name
time - time a command
Syntax
time command
/bin/time command
Description
The command lets the specified command execute and then outputs the amount of elapsed real time, the time spent in the operating system,
and the time spent in execution of the command. Times are reported in seconds and are written to standard error.
If you are using any shell except the C shell, you can give the command as shown on the first line of the Syntax section. If you are using
the C shell, you must use the command's full pathname as shown on the second line of the Syntax section. If you do not use the full path-
name, will execute its own built-in command that supplies additional information and uses a different output format.
The command can be used to cause a command to be timed no matter how much CPU time it takes. For example:
% /bin/time cp /etc/rc /usr/bill/rc
0.1 real 0.0 user 0.0 sys
% /bin/time nroff sample1 > sample1.nroff
3.6 real 2.4 user 1.2 sys
This example indicates that the command used negligible amounts of user and system time and had an elapsed time of 1/10 second (0.1). The
command used 2.4 seconds of user time and 1.2 seconds of system time, and required 3.6 seconds of elapsed time.
Restrictions
Times are measured to an accuracy of 1/10 second. Thus, the sum of the user and system times can be larger than the elapsed time.
See Alsocsh(1)time(1)