escaping - 鱼:在 sed 中转义 `^`
问题描述
在 Fish shell 中,尝试在 in 中逃逸^
,[^anything]
但是sed
,它不起作用。
我尝试使用单引号 ( 's///'
)、双引号 ( "s///"
、通过单斜杠或双斜杠 ( /
) 进行转义,但没有任何效果。
我想要命令中单引号和双引号的解决方案。sed
$ echo 'cd $OLDPWD $argv' | sed $sed_options "s/cd \([\^ ]\) \$argv/cd \1/g" -
$ echo 'cd $OLDPWD $argv' | sed $sed_options 's/cd \([\^ ]\) \$argv/cd \1/g' -
解决方案
在 Fish shell 中,尝试在 sed 的 [^anything] 中转义 ^,但是它不起作用。
所以,问题是你不需要^
为了鱼的利益而逃避[0]。
如果你想要一个反转字符集,你应该只使用它而不使用反斜杠。
例如
echo abc | sed -e 's/[^a]/+/g'
将用“+”替换“b”和“c”,因为“a”都不是。
我想要 sed 命令中的单引号和双引号的解决方案。
这在单引号和双引号中是相同的。
echo 'cd $OLDPWD $argv' | sed $sed_options "s/cd \([^ ]\) \$argv/cd \1/g"
[0] fish 3 之前的技术版本使用它来表示 stderr 重定向,但仅在标记的开头,并且仅在引号之外。这些都不适用于这里。
推荐阅读
- spring-boot - 在运行时根据文件扩展名设置目标位置
- c# - 如何在 SQL Server 通信中禁用 C# 中的 NetBios
- sql-server - 如何修复 System.Data.SqlClient.SqlException:“用户“xx\xxxx$”登录失败”
- c - 结构填充的规则是什么
- html - 显示 HTML5 进度条的内部文本?没有实施的技术原因?
- asp.net-mvc - 如何使用实体框架连接两个表
- r - 有没有办法在换出一个变量时循环 R 分类模型?
- python - 从数据框中读取和拆分列值
- android - 白天晚上忽略特定活动
- laragon - Laragon 调用未定义函数 pg_pconnect() 即使我启用了 pgsql