Shell-Script
從文件名中獲取目錄名
我想通過提取文件名的一部分來創建目錄名。這裡有些例子:
server.log.2016-03-20-14
→20160320
server-2016-03-17-13-16-Restart.log
→20160317
我正在使用 HP-UX。
你可以使用 awk 。
echo server.log.2016-03-20-14 | awk -F'[.]' '{print $3}' | awk -F'[-]' '{print $1$2$3}'
echo server-2016-03-17-13-16-Restart.log | awk -F'[-]' '{print $2$3$4}'
您可以使用 sed 將文件名傳遞給正則表達式檢查:
echo server.log.2016-03-20-14 | sed 's/server\.log\.\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)/\1\2\3/g' echo server-2016-03-17-13-16-Restart.log | sed 's/server-\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)-Restart.log/\1\2\3/g'
如果您需要更嚴格的正則表達式,例如可以用正則表達式描述月份
0[0-9]\|1[12]
天是
0[1-9]\|[12][0-9]\|3[01]