有一堆字符串
"pipe 1/4" square"
"3" bar"
"3/16" spanner
2" nozzle
spare tyre
我希望从字符串的开头和使用RegEx的字符串结尾删除"
标记。
我在simulator的帮助下尝试references,但似乎做不到。
问:什么是使用BASH执行此操作的RegEx?
答案 0 :(得分:2)
使用此正则表达式匹配存在于行^"|"$
的开头和结尾的双引号,然后将匹配替换为空字符串。
使用sed。
sed 's/^"\|"$//g' <<<$var
答案 1 :(得分:0)
尝试以下命令:
echo $var | sed 's/^(.*)"$/\1/'
这会通过管道$var
运算符将变量sed
传递给|
命令。然后,Sed将使用括号中的组匹配替换此输入字符串。此匹配在sed
中以\1
的形式提供。因此,您的输入字符串减去最终引号,将由echo
实际输出。
答案 2 :(得分:0)
a="\"pipe 1/4\" square\""
a="${a/#\"/}" && a="${a/%\"/}"
echo "$a"
输出:
pipe 1/4" square
说明:
${var/old/new}
将old
替换为new
中的$var
。
#
之前的old
会在$var
的开头匹配。{。}
%
之前的old
会在$var
结束时匹配。