首页 > 解决方案 > 如何从另一个字符串中删除所有出现的带有`/`的字符串

问题描述

我有看起来像这样的字符串:

/mnt/blumeta0/db2/head/home/db2inst1/sqllib/ctrlha/ /mnt/blumeta0/db2/head/home/db2inst1/sqllib/ctrl/ /mnt/blumeta0/db2/head/home/db2inst1/sqllib/log/ /mnt/blumeta0/db2/head/home/db2inst1/sqllib/cfg/

这存储在sqllib_files_folders下面脚本中的变量中:我正在尝试删除所有出现的前缀TMP_SOTRAGE/mnt/blumeta0/db2我为此编写了以下内容:

#!/bin/sh
TMP_STORAGE="/mnt/blumeta0/db2"
METADATA_PATH="/head"
sqllib_files_folders=$(find $TMP_STORAGE$METADATA_PATH/home/db2inst1/sqllib/ -maxdepth 1 -mindepth 1 '(' '(' -type d -printf '%p/ ' ')' -o -printf '%p ' ')')
sqllib_files_folders=echo ${sqllib_files_folders//$TMP_STORAGE/}
echo $sqllib_files_folders

这适用于没有/. 我试过用\. 但这也不起作用。请问有什么帮助吗?

标签: shell

解决方案


例如:

sqllib_files_folders=$(echo $sqllib_files_folders|sed "s%$TMP_STORAGE%%g")

推荐阅读