我有一个包含内容的文件
abc dbw ;\
xxx{ sample test }
bewolf \
bewolf
test
我需要检查
xxx{ sample test }
bewolf
并像这样注释掉这些行
/*xxx{ sample test }
bewolf*/
我尝试使用
grep
,但是grep
搜索字符串。由于Dash脚本没有数组,因此使其工作更加艰巨。我试图获取开始和结束索引,以便可以使用
head
和tail
剪切该部分。欢迎使用
sed
和awk
之类的其他任何想法。更笼统地说,我需要使用Bash脚本在C文件中注释一个宏。
最佳答案
如果多个结尾注释不打扰您,则可以使用一个简单的sed
像这样:sed -e "s%^xxx{ sample test }$%\/\*&\*\/%" -e "s%^bewolf$%\/\*&\*\/%" file.txt
输入:
abc dbw ;\
xxx{ sample test }
bewolf \
bewolf
test
输出:
abc dbw ;\
/*xxx{ sample test }*/
bewolf \
/*bewolf*/
test
如果要直接覆盖
-i
,请添加file.txt
标志。