我有一个工作sed命令替换在匹配块中的一些坐标,如下图所示: sed命令看起来像这一点,并在庆典工作:Sed块在tcsh上出现乱码。工作在bash
sed '/^matched.*$/ {
n;n;n;s/img{[0-9]*,[0-9]*}/img{0,10}/;n;s/img{[0-9]*,[0-9]*}/img{20,30}/;n;s/img{[0-9]*,[0-9]*}/img{40,0}/
}
' file.txt
它搜索的匹配,并执行一些小号 ubstitutions在ñ分机线
的问题是,相反的是bash,如果I型的代码的第一行并按下回车键在tcsh的。代码立即执行并返回缺失'。 如果我执行相同的命令与tcsh的,并删除所有的换行符然后我得到sed的:命令乱码:(在Ubuntu的bash sed的版本4.2.2它甚至工作没有换行)
我知道,问题与包含sed代码块的花括号{}之前和之后的新行有关。但我不知道如何在那里输入。
此外,我不知道如何将这些换行符放在shell脚本中,以便在其单独的行上放置大括号。
file.txt的:
unmatched
{
"img{170,68}"
"img{817,252}"
"img{664,1096}"
"img{12,943}"
}
matched
{
"img{0,0}"
"img{0,111}"
"img{222,333}"
"img{444,0}"
}