相关疑难解决方法(0)

使用 sed 用多行字符串替换匹配项

可能的重复:
将多行字符串插入另一个字符串

我有一个名为的文件,foo.txt其中包含:

富
酒吧
巴兹

我想bar用存储在变量中的多行字符串替换每次出现$bar

1
2
3

导致:

富
1
2
3
巴兹

我可以awk使用以下方法做到这一点:

echo "$bar" | awk '{
        如果(文件名==“-”)
        {
            如果(我!=“”)
            {
                我 = 我"\n"
            }
            我=我$0
        }
        别的
        {
            if($0 == "bar")
            {
                打印我
            }
            别的
            {
                打印
            }
        }
    }'

但是,尝试在sedusing 中执行相同操作sed 's/bar/'"$bar"'/' foobar.txt会出现错误:

sed: 1: "s/bar/1
2
3/": 替代模式内未转义的换行符

这可以解决吗?

如果使用其他标准工具有更简单的方法来做到这一点,我也想知道。

sed awk

3
推荐指数
1
解决办法
7559
查看次数

标签 统计

awk ×1

sed ×1