我有一个脚本,它读取文本流并生成一个 sed 命令文件,该文件稍后使用sed -f
. 生成的 sed 命令如下:
s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g
s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g
s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g
Run Code Online (Sandbox Code Playgroud)
假设生成sed
命令的脚本类似于:
while read cid fileid
do
cidpat="$(echo $cid | sed -e s/\\./\\\\./g)"
echo 's/'"$cidpat"'/https:\/\/mysite.com\/files\/'"$fileid"'/g' >> sedscr
done
Run Code Online (Sandbox Code Playgroud)
如何改进脚本以确保cid
字符串中的所有正则表达式元字符都被正确转义和插入?
我正在尝试使用 sed 获取文件的内容并将其插入到另一个文件中的匹配模式之后。我的问题与此问题非常相似,但我希望插入文件的内联内容而不是新行。我怎样才能做到这一点?
使用我引用的示例问题,第一个答案正是我想要的;但是,我希望插入发生内联:
sed '/First/r file1.txt' infile.txt
Run Code Online (Sandbox Code Playgroud)
我要插入的实际数据是一个 JSON 文件:
[
{
"foo": "bar",
"baz": "biff",
"data": [
{
"a": 1945619,
"b": [
{
"c": 512665,
"d": "futz"
}
]
}
]
}
]
Run Code Online (Sandbox Code Playgroud)