Sponsored Content
Full Discussion: Date substring from a string
Top Forums Shell Programming and Scripting Date substring from a string Post 302933572 by Don Cragun on Friday 30th of January 2015 06:19:23 PM
Old 01-30-2015
Quote:
Originally Posted by usrrenny
Hi,

I tried the below.

while read line
do
Code:
if echo "$line" | grep -q "started at"
 then
 st= ${line#*started at}
 echo $st
 fi
done < $load_time

but getting output as
temp.ksh[35]: Thu Jan 29 15:01:17 CST 2015: not found [No such file or directory]

I should get output as 15:01:17
You can't have a space between the variable= and the value to be assigned to that variable. The syntax you used, sets st to an empty string and includes it in the environment of the command that follows. But that won't get rid of the Thu Jan 29 or the CST 2015

Note that your original post didn't say anything about the string started at appearing in the input (and was not in your sample input).

Assuming you're working in an English locale, you could try something like:
Code:
awk '
match($0, /[[:digit:]]{1,2}:[[:digit:]]{2}:[[:digit:]]{2} *([AP]M){0,1}/) {
	print substr($0, RSTART, RLENGTH)
}' file

The ERE can be simplified if you only have 24-hour format times.

With the following contents in your input file:
Code:
Nothing found on this line
 a.sh start time is Fri Jan  9 17:17:33 CST 2015
a.sh end time is Fri Jan  9 17:47:33 CST 2015
Single digit hour Fri Jan  9  5:50:59 PM CST 2015
Double digit hour Sat Jan 10 11:22:33 AM CST 2015
No space single Fri Jan  9  5:50:59PM CST 2015
No space double Sat Jan 10 11:22:33AM CST 2015

it produces the output:
Code:
17:17:33 
17:47:33 
5:50:59 PM
11:22:33 AM
5:50:59PM
11:22:33AM

Fairly simple changes would allow you to find more than one timestamp on a line.

If you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk

Last edited by Don Cragun; 01-30-2015 at 07:32 PM.. Reason: Fix typo (s/value/variable/).
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Programming

can i get a substring from a string?

for example, the string a is "abcdefg", can i get a substring "bcd" (from ato a) from string a? thank you (4 Replies)
Discussion started by: dell9
4 Replies

2. Shell Programming and Scripting

getting a substring from a string

hi all, I am trying to extract SUBSTRINGS out of a string using ksh. The string is "SAPR3K.FD0.FA.TJ.B0010.T050302" I tried using a= `expr substr $stringZ 1 2` which is giving me a syntax error, donno why?? any ideas why its not working?? I also tried echo "welcome" | awk '{... (3 Replies)
Discussion started by: maradona
3 Replies

3. UNIX for Dummies Questions & Answers

How to get the substring from the string

Hi All, Can anybody help me to get the substring from the given string. (3 Replies)
Discussion started by: Anshu
3 Replies

4. Shell Programming and Scripting

get substring from string

Hi All, Problem Description: XML_REP_REQUEST=`CONCSUB "$LOGIN" "SQLAP" "$RESP_NAME" "$USRNM" WAIT="Y" "CONCURRENT" "APPLICATION_SHORT_NAME" "CP_SHORT_NAME"` echo Report Request: $XML_REP_REQUEST --to print value in log file While execution the value of 'XML_REP_REQUEST' is 'Prozess... (5 Replies)
Discussion started by: suman.g
5 Replies

5. Shell Programming and Scripting

Help with string and substring also I/O

#!/bin/sh PRINTF=/usr/bin/printf PASSWD=/etc/passwd $PRINTF "Enter a UserID\n" read USERID if ; then $PRINTF "$USERID does not exist, please contact IT service\n" exit 1 fi USERHOME=`grep "^$USERID:" $PASSWD | awk -F : '{print $6}'` USERSHELL=`grep "^$USERID:"... (1 Reply)
Discussion started by: ikeQ
1 Replies

6. Shell Programming and Scripting

How to extract a substring from a string

Hi, I have an input string say for example: ABC,DEF,IJK,LMN,...,XYZ The above string is comma delimited. Now I have to extract the last part after the comma i.e. XYZ. :b: (3 Replies)
Discussion started by: bghosh
3 Replies

7. UNIX for Dummies Questions & Answers

substring a date

Hello I am trying to substring the month in a date string I am getting an error " bad substitution" #!/bin/ksh INPUT='20121225' echo ${$INPUT:5:2} exit 0 Very new in unix. Thanks. Please use code tags next time for your code and data. (9 Replies)
Discussion started by: lillyt2006
9 Replies

8. Shell Programming and Scripting

Remove a substring from string

Good morning friends, how can i remove a string with linux scripting from a file? In specific i want to remove from a file all the tweet names and links eg @aerta and links such as http://dst.co/pIiu3i9c Thanx!!! (4 Replies)
Discussion started by: paladinaeon
4 Replies

9. UNIX for Dummies Questions & Answers

Get date, change format and substring?

I'm somewhat new to shell scripting and I have a file that had a date in it. /somedirectory/datefile.txt I want to take the date in the file: 2013-06-12 and change the formate to 20130612 and have it as a variable/parm I also what to take that date 2013-06-12 and substring it. I know... (3 Replies)
Discussion started by: MJCreations
3 Replies

10. Shell Programming and Scripting

Extracting substring within string between 2 token within the string

Hello. First best wishes for everybody. here is the input file ("$INPUT1") contents : BASH_FUNC_message_begin_script%%=() { local -a L_ARRAY; BASH_FUNC_message_debug%%=() { local -a L_ARRAY; BASH_FUNC_message_end_script%%=() { local -a L_ARRAY; BASH_FUNC_message_error%%=() { local... (3 Replies)
Discussion started by: jcdole
3 Replies
All times are GMT -4. The time now is 12:13 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy