小编use*_*118的帖子

使用sed在两个斜杠之间提取字符串

我正在尝试使用 sed 从文件中的一行中提取特定字符串。目前我正在使用 while 循环读取文件并搜索特定字符串。当找到该字符串时,我正在提取它,但是我需要使用 sed 来解析输出,以便我只获取两个斜杠之间的字符串(它是一个目录名,所以如果可能的话,我需要同时保留开头和结尾的斜杠)。这是我正在运行以搜索文件的循环:

#!/bin/sh
file=configFile.conf
while read line 
do
    if  echo "$line" | grep -q "directory_root" 
    then DIR_ROOT="$line"
fi
done < "$file"
echo $DIR_ROOT
exit 0
Run Code Online (Sandbox Code Playgroud)

while 循环起作用并回显以下字符串:

directory_root /root/config/data/
Run Code Online (Sandbox Code Playgroud)

然后我需要使用 sed 以获得以下输出,以便将正确的目录名称传递给另一个脚本:

/root/
Run Code Online (Sandbox Code Playgroud)

是否可以使用 sed 和正则表达式从回显输出中仅提取上述内容?

谢谢

regex bash shell text-processing sed

3
推荐指数
1
解决办法
3015
查看次数

标签 统计

bash ×1

regex ×1

sed ×1

shell ×1

text-processing ×1