regex - 找到一个模式并替换整行&找到一个模式并插入到后面

标签 regex linux bash replace sed

问题1:

模式:

test_$(whoami)

变量:

var1=$(pwd)

我想找到模式并将整行替换为 var1

sed -i "s/.*test_$(whoami).*/$var1/" test.txt

它给了我 sed: -e 表达式 #1, char 28: 's' 的未知选项

问题 2。

模式:

#####Insert here#####

要插入的内容:包括$var1/file_$(whoami).txt

我想找到符合模式的行(完全匹配),并在后一行插入内容

sed -i "s/#####Insert here#####/include $var1/file_$(whoami).txt" test.txt

也不行

有人可以帮忙吗?

最佳答案

回复问题1。使用不同的正则表达式分隔符:

sed -i.bak "s~^.*test_$(whoami).*$~$var1~" test.txt

因为 $var1 可以包含 /

关于regex - 找到一个模式并替换整行&找到一个模式并插入到后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387410/

相关文章:

Java Pattern.quote

C# - 用分号替换换行符

linux - Linux/Unix I/O 类型

linux - 为什么我遇到 Linux 信号处理的意外行为?

bash - 如何通过 "mySync leftdir rightdir"等特定命令使我的同步 bash 脚本可执行?

Javascript camel case split for json 结果

regex - 转义 [] 的正则表达式是什么?

linux - 解码 Valgrind 输出

regex - Bash 脚本正则表达式...如何查找和替换所有匹配项?

linux - 环境变量地址的随机化