我的输入是
./file \[10\/04\/16 01:02:03 BST\] \[06\/08\/16 05:02:08 BST\]
我想将\[10\/04\/16 01:02:03 BST\]
转换为Apr 10 16 01:02:03
我使用以下代码,
echo '\[10\/04\/16 01:02:03 BST\]' | awk -F'[][/: \\\\]+' 'BEGIN{split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec",m,/ /)} {print m[$3+0],$2,$4,$5":"$6":"$7}'
是否可以通过将\[10\/04\/16 01:02:03 BST\]
存储在$StartTime
之类的变量中并在代码中使用它来提取结果?现在我只使用一个日期。是否可以使用两个日期?
答案 0 :(得分:2)
您可以使用名为script.sh
的日期转换脚本:
#!/bin/bash
mydt() {
IFS='/' read -ra arr <<< "${1//[\[\]\\]}"
TZ=':Europe/London' date -d "${arr[1]}/${arr[0]}/${arr[2]}" '+%b %d %y %T'
}
var1="$(mydt "$1")"
var2="$(mydt "$2")"
echo "$var1"
echo "$var2"
然后将其称为:
bash script.sh '\[10\/04\/16 01:02:03 BST\]' '\[06\/08\/16 05:02:08 BST\]'
<强>输出:强>
Apr 10 16 01:02:03
Aug 06 16 05:02:08