我要删除文件中以下格式的行(2行)的所有匹配项。那就是第一行以{结尾,第二行只有一个字符}。如果这种格式出现了n次,我想删除这2n行。
anything....{
}
示例输入文件:
abc {
a
}
bcd {
}
ecd xyz {
}
pqr {
stu {
}
}
xyz {
so
}
预期的输出文件:
abc {
a
}
xyz {
so
}
答案 0 :(得分:0)
如果有帮助,我已经通过shell脚本完成了此操作: stack.sh
#!/bin/bash
sed 's#} #}\n#g' source.txt> file.tmp
grep -o '.*{ [a-z]* }' file.tmp | sed 's#{ #{\n#g' | sed 's#}#\n}#g' > result.txt
rm file.tmp
输出
[root@localhost stack]# cat source.txt
abc {
a
}
bcd {
}
ecd {
}
xyz {
so
}
[root@localhost stack]# bash stack.sh
[root@localhost stack]# cat result.txt
abc {
a
}
xyz {
so
}