Shell-Script

從文件名中獲取目錄名

  • March 20, 2016

我想通過提取文件名的一部分來創建目錄名。這裡有些例子:

  1. server.log.2016-03-20-1420160320
  2. server-2016-03-17-13-16-Restart.log20160317

我正在使用 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]

引用自:https://unix.stackexchange.com/questions/271008