sed / awk - 从文件中删除除特定匹配模式之外的所有内容
我想将这样的 makefile 转换
test.o: var_one.h var_two.h
test2.o: another_header.h var_three.h archive/something_random.h
为: 即
test.o: var_one.h var_two.h
test2.o: var_three.h
,我想删除任何不以搜索字符串“var_”开头的文件名
我似乎找不到 sed 有关模式匹配的大量信息。想要搜索字符串?
I want to convert a makefile like this:
test.o: var_one.h var_two.h
test2.o: another_header.h var_three.h archive/something_random.h
to this:
test.o: var_one.h var_two.h
test2.o: var_three.h
ie, I want to remove any filename that doesn't start with the search string "var_"
I can't seem to find a lot of information for sed about pattern matching when not wanting the search string?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于这种类型的工作,你确实需要 awk。使用 sed,尝试删除与字符串不匹配的单词将是一个痛苦的(而且可能是丑陋的)脚本。
输入
输出
You really need awk for this type of job. With sed, attempting to remove words that don't match a string would be a painful (and probably ugly) script to write.
Input
Output