我正在研究日志存档脚本。

我在一台机器上有三个目录

  /opt/tibco/run/tibbpma/tibcohost/BPM_DEV_TIBBPMA_HOST_01/host/logs
  /opt/tibco/run/tibbpmb/tibcohost/BPM_DEV_TIBBPMB_HOST_01/host/logs
  /opt/tibco/run/tibbpmc/tibcohost/BPM_DEV_TIBBPMC_HOST_01/host/logs


脚本使用for循环转到每个目录,并使用模式.log查找所有日志。并将带有日期的文件移动到/opt/tibco/scripts/logs/archive下的公共目录

3个/opt/tibco/run/*/*/*/logs目录下的日志名称有时相同,并且在移动时会相互覆盖。为了避免覆盖,我想在文件名中添加tibbpma_BPM_DEV_TIBBPMA_HOST_01_以具有不同的文件名。

请帮助我们获取tibbpma_BPM_DEV_TIBBPMA_HOST_01_tibbpmb_BPM_DEV_TIBBPMB_HOST_01_tibbpmc_BPM_DEV_TIBBPMC_HOST_01_

最佳答案

您可以使用此grep -o -P 'BPM[^/]+'从这些路径中提取所需的部分,例如

$ echo /opt/tibco/run/tibbpma/tibcohost/BPM_DEV_TIBBPMA_HOST_01/host/logs | grep -o -P 'BPM[^/]+'
BPM_DEV_TIBBPMA_HOST_01

关于linux - 需要从包含路径的变量中获取字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22066855/

10-13 08:05