鱼:在 sed 中转义 `^`

fish: escaping `^` in sed

在 Fish shell 中,尝试在 [^anything] 中转义 ^ in sed,但是,它不起作用。

我尝试使用单引号 ('s///')、双引号 ("s///"、通过单斜线或双斜线转义 (/),但没有任何效果。

我想要 sed 命令中单 双引号的解决方案。

$ echo 'cd $OLDPWD $argv' | sed $sed_options "s/cd \([\^ ]\) $argv/cd /g" -

$ echo 'cd $OLDPWD $argv' | sed $sed_options 's/cd \([\^ ]\) $argv/cd /g' -

In Fish shell, try to escape ^ in [^anything] in sed, however, it does not work.

所以,问题是您不需要为了鱼的利益而逃避 ^[0]。

如果你想要一个倒置的字符集,你应该只使用不带反斜杠的字符集。

例如

echo abc | sed -e 's/[^a]/+/g'

会将 "b" 和 "c" 都替换为“+”,因为 "a".

都不是

I’d like a solution for both single and double quotes in sed command.

这在单引号和双引号中是相同的。

echo 'cd $OLDPWD $argv' | sed $sed_options "s/cd \([^ ]\) $argv/cd /g"

[0] fish 3 之前的技术版本使用它来表示 stderr 重定向,但仅在标记的开头,并且仅在引号之外。 None 其中适用于此处。