Sponsored Content
Homework and Emergencies Homework & Coursework Questions expr to translate the date command Post 302501149 by Corona688 on Wednesday 2nd of March 2011 08:05:18 PM
Old 03-02-2011
There needs to be spaces between everything in expr. 3 -12 is invalid, 3 - 12 is okay.

That aside your script can be made a lot better in other ways. You don't need to be doing cut all the time to do simple string processing, that's really slow and difficult.
Code:
#!/bin/bash

T="am"
# One way to split strings
read H M S <<<$(date +'%H %M %S')
# Another:
# STR=`date '+%H %M %S'`
# H="${STR:0:2}"
# M="${STR:3:2}"
# S="${STR:6:2}"

H="${H##0}"     # Strip leading zero

if [[ "${H}" -gt 12 ]]
then
        T="pm"
        H=`expr $H - 12`
fi

# printf makes it easy to put them all back together.
# We print the first one as digits, so it can add a leading zero,
# but the rest we just print as strings.
printf "%02d:%s.%s %s\n" $H $M $S $T

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

expr command

I am looking for the correct syntax on the expr command in UNIX. I have a script that I am building at the moment. the script is creating file1 that is an actual .sql file that is going inside the oracle database to get some information in there. It take that information, puts it inside another... (2 Replies)
Discussion started by: wolf
2 Replies

2. UNIX for Advanced & Expert Users

Translate date value to normal date and backwards.

Hello, How do i translate datevalues in unix to normal dates. and how do i translate normal dates in to datevalues. I'm using the unix-date. Sample: 1067949360 to 4-11-03 12:36 and 4-11-03 12:36 to 1067949360 I want to built a script with a question to the user: give in date... (4 Replies)
Discussion started by: Frederik
4 Replies

3. Shell Programming and Scripting

date=`/usr/ucb/expr $date1 - 1`

Hi I need to subtract one day from date1=`/bin/date +%d` So I used date=`/usr/ucb/expr $date1 - 1` The only thing is if date1 is a single digit like 08, date will be 8 instead of 08. How can I avoid losing 0? Thanks for all your help!!! (4 Replies)
Discussion started by: whatisthis
4 Replies

4. UNIX for Dummies Questions & Answers

expr command

hi guys.... i hava a command expr... where i m adding a value in a loop like Tc=`expr $Tc\+ $l` where Tc is declred as a variable and every time l contains a new vaue if Tc =0 initially and l =2 Tc should be equal to 0+ 2 and then l = 4 Tc = 2+4 and dispaly as 6 but after... (5 Replies)
Discussion started by: madhu_aqua14
5 Replies

5. UNIX for Dummies Questions & Answers

using the expr command

Hi friends how can i execute expr $va1 * $var2 provided i m not supposed to use '/' also the nglob variable is turned off. (4 Replies)
Discussion started by: ashishj
4 Replies

6. Shell Programming and Scripting

Translate decimal into date

Hello, what can I do to convert a decimal number (001-366) into the day of the year it represent in the format of mm-dd-yyyy ? I know about the date +%j, it gives me the number for the current date, what about a reverse of this, is there such a thing? My number resides in a var, what can I do to... (3 Replies)
Discussion started by: gio001
3 Replies

7. Shell Programming and Scripting

expr command

Hi Can anyone explain me the usage of this command and the arguments used here and what will be the expected output : v_num=`expr nav_d_20100204_1759 : '*\(*\)'` what will be the value returned in v_num. Thanks in Advance!!! Regards Naveen Purbia (3 Replies)
Discussion started by: trying_myluck
3 Replies

8. Shell Programming and Scripting

expr command help

I'm trying to check if a variable'd string is only one character and use that in an if statement the only way I could find is: $expr "${var}" : . # expr STRING : regrep where the "." is the grep wildcard for any single character. Whats wrong with my code here and is there a... (3 Replies)
Discussion started by: Tewg
3 Replies

9. UNIX for Dummies Questions & Answers

How to translate multiple spaces into a single space using tr command?

I am trying to read a txt file and trying to translate multiples spaces into single spaces so the file is more organized, but whenever I try the command: tr ' ' ' ' w.txt The output is: tr: extra operand `w.txt' Try `tr --help' for more information. Can someone please help? :wall: ... (2 Replies)
Discussion started by: Nonito84
2 Replies

10. Shell Programming and Scripting

Use of tr command to translate after 1st character of each line in a file

Hello, I have an input file contaning following data: < 12345;5454;77;qwert< yuyuy;ruwuriwru> yyyw; > 35353;68686;424242;hrjwhrwrwy< dgdgd; I have first character as '<' or '>'and after that one space is their in each line I just want to replace 1st space encountered after < or >... (3 Replies)
Discussion started by: abhi001cse
3 Replies
EXPR(1) 						      General Commands Manual							   EXPR(1)

NAME
expr - evaluate arguments as an expression SYNOPSIS
expr arg ... DESCRIPTION
The arguments are taken as an expression. After evaluation, the result is written on the standard output. Each token of the expression is a separate argument. The operators and keywords are listed below. The list is in order of increasing precedence, with equal precedence operators grouped. expr | expr yields the first expr if it is neither null nor `0', otherwise yields the second expr. expr & expr yields the first expr if neither expr is null or `0', otherwise yields `0'. expr relop expr where relop is one of < <= = != >= >, yields `1' if the indicated comparison is true, `0' if false. The comparison is numeric if both expr are integers, otherwise lexicographic. expr + expr expr - expr addition or subtraction of the arguments. expr * expr expr / expr expr % expr multiplication, division, or remainder of the arguments. expr : expr The matching operator compares the string first argument with the regular expression second argument; regular expression syntax is the same as that of ed(1). The (...) pattern symbols can be used to select a portion of the first argument. Otherwise, the matching operator yields the number of characters matched (`0' on failure). ( expr ) parentheses for grouping. Examples: To add 1 to the Shell variable a: a=`expr $a + 1` To find the filename part (least significant part) of the pathname stored in variable a, which may or may not contain `/': expr $a : '.*/(.*)' '|' $a Note the quoted Shell metacharacters. SEE ALSO
ed(1), sh(1), test(1) DIAGNOSTICS
Expr returns the following exit codes: 0 if the expression is neither null nor `0', 1 if the expression is null or `0', 2 for invalid expressions. EXPR(1)
All times are GMT -4. The time now is 07:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy