我正在研究日志存档脚本。
我在一台机器上有三个目录
/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/