I‘m using the date +’%D_%T’ to store Unix system date and time in a shell variable called $_now:
_now=”$(date +’%D_%T’)”
echo $_nowOutputs:
01/20/12_16:10:42
I’d like to replace / and : with _. I’m aware of the following sed command:
sed ‘s/\//_/g
> s/:/_/g’Outputs:
01_20_12_16_14_09
How do I specify two pattern within the same sed command to replace | and : with _ so that I can get output as 01_20_12_16_10_42?
You can use any one of the following sed substitute find and replace multiple patterns:
sed -e 's/Find/Replace/g' -e 's/Find/Replace/g' <<<"$var" sed -e 's/Find/Replace/g' -e 's/Find/Replace/g' < inputFile > outputFile out=$(sed -e 's/Find/Replace/g' -e 's/Find/Replace/g' <<<"$var")
OR
sed 's/Find/Replace/g;s/Find/Replace/g' <<<"$var" sed -e 's/Find/Replace/g;s/Find/Replace/g' <<<"$var" sed -e 's/Find/Replace/g;s/Find/Replace/g' < inputFile > outputFile out=$(sed -e 's/Find/Replace/g;s/Find/Replace/g' <<<"$var")
Examples: Find And Replace Sed Substitute Using a Singe Command Line
_now="$(sed -e 's/\//_/g;s/:/_/g' <<<$(date +'%D_%T'))" echo $_now
Sample outputs:
01_20_12_16_22_21
Here is another version:
_now=$(sed 's/[\/:]/_/g' <<<$(date +'%D_%T')) echo "$_now"
Sample outputs:
01_20_12_16_24_42
🐧 Please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 5 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Alternatively, one could tell `date` the desired format, like date +%Y-%m-%d-%H-%M
Just do:
now=`date +”%m_%d_%y_%H_%M_%S”`
echo $now
Man was showing sed not date command…
I have a not well experience with awk and sed. if any find the solution?
I have a two variable like..
$var1=a-45afd4
a-fdfgh3 ##here two word in one column and may you can say in row
$var2=a-45afd4 string1 string2 string3 string4
a-fdfgh3 string1 string2 string3 string4
a-hfdj3e string1 string2 string3 string4
a-jkkl3l string1 string2 string3 string4
i want to find $var1 data in $var2 and the output should be
Example: a-45afd4 string1 string2 string3 string4
a-fdfgh3 string1 string2 string3 string4
##rest all column row should not come
What is the output of “date -u +%V`uname`|sha512sum|sed ‘s/\W//g'”?