regex - Linux 中的 sed 命令。如何用另一个字符串替换以 xxx 开头并以 yyy 结尾的字符

标签 regex bash sed

我想将所有出现的以 B00 开头并以 \ 结尾的字符串替换为另一个字符串 customdata。我怎样才能做到这一点?

我尝试过:

sed -i 's/BOO\*\\/customdata/' file.txt.

但是它不起作用。

最佳答案

不要转义 * 并使用 [^\\]* 不跳过 \:

sed -i 's/BOO[^\\]*\\/cusomdata/g' file.txt.

如果您想保留分隔符,请不要捕获尾随 \ 并将 BOO 放回:

sed -i 's/BOO[^\\]*/BOOcusomdata/g' file.txt.

关于regex - Linux 中的 sed 命令。如何用另一个字符串替换以 xxx 开头并以 yyy 结尾的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21906855/

相关文章:

bash - ZSH 在 linux bash 中的 "compadd' 等价物是什么?

python - getent 主机采用前 3 位数字+主机名 unix

正则表达式 : One single character between 2 chars

sql - RegExp 查找和替换忽略部分匹配

python - 如果组在特定字符串之前或之后,则正则表达式捕获组

python - 匹配 SINXX11-111111 的正则表达式

bash - 从文件中提取单词

bash - 遍历数组并执行存储在变量中的命令

linux - 使用 sed 提取数字

unix - 在多个文件的 shell 脚本上使用 sed