我有一个变量:
$var="-- ---comment- --
abcd;"
我想删除“ - ”评论“ - ”
之间的每个字符预期产出:
$var="abcd;"
我正在尝试 test.sh
#!/bin/bash
var="----comment---
abcd;"
test=$(sed 's/^--.*--/' $var)
echo $test
它不起作用。我收到以下错误:
找不到命令
答案 0 :(得分:0)
在bash中:
$ cat foo.sh
var="----comment---
abcd;"
echo "$var" # this outputs the original var
echo "${var/--* /}" # this output replacing everything between -- and " "
$ bash foo.sh
----comment---
abcd;
abcd;
您可以通过
将输出设置为变量$ var="${var/--* /}"
答案 1 :(得分:0)
尝试在没有任何内容的情况下替换输出中没有预料到的模式,比如
test=$(echo $var | sed 's/^--.*--//g')
应该工作。