如何设置以下bash/sh/shell日期的格式
如何将“2016年5月18日美国东部夏令时下午1:05:30”格式设置为+%Y-%m-%d 00:00:00如何设置以下bash/sh/shell日期的格式,bash,macos,shell,sh,Bash,Macos,Shell,Sh,如何将“2016年5月18日美国东部夏令时下午1:05:30”格式设置为+%Y-%m-%d 00:00:00 JayOSX:~ jay$ d=$(defaults read /Library/Preferences/com.someapp.some.plist LastUpdated) 回音“$d” 我试过: date -j -f "%b %d, %Y at %l:%M:S %Z" "$(defaults read /Library/Preferences/com.someapp.
JayOSX:~ jay$ d=$(defaults read /Library/Preferences/com.someapp.some.plist LastUpdated)
回音“$d”
我试过:
date -j -f "%b %d, %Y at %l:%M:S %Z" "$(defaults read /Library/Preferences/com.someapp.some.plist LastUpdated)” + "%Y-%m-%d 00:00:00"
我得到了以下错误:
Failed conversion of ``%d,'' using format ``“%b''
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
给你
创建infle.txt文件:
echo "May 18, 2016 at 1:05:30 PM EDT" > infile
现在我们有:
[za]$ cat infile.txt
May 18, 2016 at 1:05:30 PM EDT
一艘班轮就可以了。仅供参考,%s-%s-%s%s%s:%s:%s\n“,$4、$1、$2、$3、$6、$7、$8是重新格式化的内容
[za]$ awk -F'[ "\t" :,]' '{printf "%s-%s-%s %s %s:%s:%s \n", $4 , $1 , $2 , $3 , $6 , $7 , $8 }' infile.txt
产出:
2016-May-18 1:05:30
快速测试
echo May 18, 2016 at 1:05:30 PM EDT | awk -F'[ "\t" :,]' '{printf "%s-%s-%s %s %s:%s:%s \n", $4 , $1 , $2 , $3 , $6 , $7 , $8 }'
我希望这会有帮助 您尝试使用的引用,“
,这些是您真正使用的引用吗?请注意区别:您的:”
,正确的引用:“
谢谢您的更正。我在实际环境中运行时使用了正确的引号。@jay您已经编辑了问题,以便报告的错误不再发生。您仍然有问题吗?没有,它仍然存在。使用awk可以这样做吗?当然有帮助,但我需要它输出为“2016-05-18 00:00:00”嗨,在我的mac电脑上,它打印的是“05”,而不是May.d=$(默认值为read/Library/Preferences/com.someapp.some.plist LastUpdated)2016-05-19 15:19:57.548默认值[11384:186690]…所以,请检查如何使源输出的格式正确。
echo May 18, 2016 at 1:05:30 PM EDT | awk -F'[ "\t" :,]' '{printf "%s-%s-%s %s %s:%s:%s \n", $4 , $1 , $2 , $3 , $6 , $7 , $8 }'