Don't confuse the shell variable expansion substitution syntax with regular expressions because they are (just as confusing at first) and quite different.
For the full list of possibilities have a look at one of the shell man pages, for example the kshell page: man/man1/ksh.html man page
The parameter expansion is about 25% down in the page (search for %% and you'll find it).
Specifically. ${name%%:*} expands the value in the variable 'name' and matches the longest pattern ":*" that is at the end of the string. The part of the expansion that is matched is truncated. So, if name contains ab:cd:ef, the expression above would match ":cd:ef" and delete that leaving just "ab".
The ${name:##*:} does the same kind of truncation, but starting from the beginning of the string. Again, if name contains "ab:cd:ef" then only "ef" would be left as the longest pattern from the beginning to ':' is "ab:cd:".
As for your error, it's treating the leading 0 as an indicator that the value should be an octal number. I don't usually work in bash -- Kshell's evaluation supports floating point calculations and doesn't make this assumption, so I wasn't aware that this would be an issue. You can compensate for this behaivour with this:
This is similar to the examples I gave above, but it matches the shortest pattern starting at the beginning of the line. So if h == "04" the expansion will just be 4, and bash won't complain. If h == "00" the expansion will be 0 which again will be fine. Finally, if h == "12" there isn't a match so there isn't a truncation.
Good luck!
---------- Post updated at 21:40 ---------- Previous update was at 21:39 ----------
Quote:
Originally Posted by bashily
I fixed it. it is base 8 and I need to force bash to recognize these number as decimal by using 10# in front of the number!
Nice job!!
That happens to be a trick that I didn't know -- I approached it a bit differently, so as usual, I learned something too.
Ok, this is going to be hard to describe, but here it goes.
I have written a bash script that, while executing starts a timer, and when done stops the timer. The $RUNTIME variable value is in seconds, so the variable usually equals a number like 126 (equals 2 minutes 6 seconds). In my script I... (3 Replies)
Hello All,
I have a problem with the following text file. For the field number 5 which is the time format (hh:mm:ss). But I would like to delete "ss" and showing hh:mm only.
00001,CLIENT,Company,1218,N,1:04,35,0.211,0,0.211,1.155531,0:00,0,0,0,0,0,1:04,35,0.211,0,0.211,1.155531,foold... (16 Replies)
HI..
I have some files...when doing "ls -l" its like this..
-rwxr-xr-x 1 e2e e2e 747 Aug 30 15:18 abc.txt
how can I get the number YYYYMMDD from this...( since I need to compare this number with some other value..)
with the help of date/awk/sed/epoch or whatever u... (1 Reply)
how to grep 30 mins from starting time of script
let for example,script runs at 02:00am....i want to grep from 01.30 till 02:00
-------------------------------------------------------------------
how to achive this in a k-shell script ? (3 Replies)
I have a file named "suspected" with series of line like these :
{'protocol': 17, 'service': 'BitTorrent KRPC', 'server': '219.78.120.166', 'client_port': 52044, 'client': '10.64.68.44', 'server_port': 8291, 'time': 1226506312L, 'serverhostname': ''}
{'protocol': 17, 'service': 'BitTorrent... (3 Replies)
I want to append current date and time to a file name like filename_090920091210. If I use filename_`date +%d%m%Y%T`, the ouput is filename_0909200912:10:33.
How to format this as filename_090920091210.
Please let me know.
Thanks in advance. (3 Replies)
Hello Guys.
I have copied the following from the time man pages
time -f "%E real,%U user,%S sys" ls -Fs
But I am getting
-f: command not found
Regards (3 Replies)
Hi Again,
I have a file that contains date and time for the past 2 hours. What i need is add missing date and time in a file.
INPUT
2016-01-13 01:33 10
2016-01-13 01:31 10
2016-01-13 01:30 10
2016-01-13 01:29 10
2016-01-13 01:28 10
2016-01-13 01:27 10
2016-01-13 01:26 10
2016-01-13... (14 Replies)
Discussion started by: ernesto
14 Replies
9. Post Here to Contact Site Administrators and Moderators
Write a script named time that displays the time in standard 12-hour format, rather than 24-hour format. Allow the user to give a -m option to get 24-hour format. For example:
> date
Sun Feb 10 10:56:50 CST 2008
> time
10:56 AM
> date
Sun Feb 10 21:57:07 CST 2008
> time
9:57 PM
>... (0 Replies)
Hi All,
I have one file which contains time for request and response.
I want to calculate time difference in milliseconds for each line.
This file can contain 10K lines.
Sample file with 4 lines.
for first line.
Request Time: 15:23:45,255
Response Time: 15:23:45,258
Time diff... (6 Replies)
Discussion started by: Raza Ali
6 Replies
LEARN ABOUT OPENSOLARIS
acctcms
acctcms(1M) System Administration Commands acctcms(1M)NAME
acctcms - command summary from process accounting records
SYNOPSIS
/usr/lib/acct/acctcms [-a [-o] [-p]] [-c] [-j] [-n] [-s]
[-t] filename...
DESCRIPTION
acctcms reads one or more filenames, normally in the form described in acct.h(3HEAD). It adds all records for processes that executed iden-
tically named commands, sorts them, and writes them to the standard output, normally using an internal summary format.
OPTIONS -a Print output in ASCII rather than in the internal summary format. The output includes command name, number of times executed, total
kcore-minutes, total CPU minutes, total real minutes, mean size (in K), mean CPU minutes per invocation, "hog factor," characters
transferred, and blocks read and written, as in acctcom(1). Output is normally sorted by total kcore-minutes.
Use the following options only with the -a option:
-o Output a (non-prime) offshift-time-only command summary.
-p Output a prime-time-only command summary.
When -o and -p are used together, a combination prime-time and non-prime-time report is produced. All the output summaries are total
usage except number of times executed, CPU minutes, and real minutes, which are split into prime and non-prime.
-c Sort by total CPU time, rather than total kcore-minutes.
-j Combine all commands invoked only once under "***other".
-n Sort by number of command invocations.
-s Any file names encountered hereafter are already in internal summary format.
-t Process all records as total accounting records. The default internal summary format splits each field into prime and non-prime-time
parts. This option combines the prime and non-prime time parts into a single field that is the total of both, and provides upward
compatibility with old style acctcms internal summary format records.
EXAMPLES
Example 1 Using the acctcms command.
A typical sequence for performing daily command accounting and for maintaining a running total is:
example% acctcms filename ... > today
example% cp total previoustotal
example% acctcms -s today previoustotal > total
example% acctcms -a -s today
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWaccu |
+-----------------------------+-----------------------------+
SEE ALSO acctcom(1), acct(1M), acctcon(1M), acctmerg(1M), acctprc(1M), acctsh(1M), fwtmp(1M), runacct(1M), acct(2), acct.h(3HEAD), utmpx(4),
attributes(5)NOTES
Unpredictable output results if -t is used on new style internal summary format files, or if it is not used with old style internal summary
format files.
SunOS 5.11 22 Feb 1999 acctcms(1M)