昨天听到一个很有意思的说法:脚本强于老虎。我非常同意这个说法,它有两层意思:脚本很强大,可以做很多事情,虽然不是最好的方式;剧本危险,容易出错;或许我可以再补充一句:有伴如伴虎。。。我个人很喜欢shell脚本,因为做事太简单粗暴,适合实现v0.01版本原型,我什至觉得是软件设计的好帮手。接下来是正题。在做嵌入式软件开发的时候,偶尔需要收集和分析日志。有时您需要删除多余的空白行以格式化输出。我挑选了几个 简短易懂的 方法分享给大家。1、grep$grep-v'^$'file-v用于输出不匹配的内容:$mangrepMatchingControl-v,--invert-matchInvertthesenseofmatching,toselectnon-matchinglines。通配符'^用于表示字符串的开始,使用In表示字符串的结束。2、sed$sed'/^$/d'filesed的全称是“streameditor”,即流编辑器,是一个使用简单紧凑的编程语言来解析和转换文本的超级实用程序。^$用于匹配空行,d是sed删除匹配项的命令之一:$mansedCOMMANDSYNOPSIS...dDeletepatternspace.Startnextcycle....3。awk$awk'!/^$/'文件补充知识:awk(以其创始人AlfredAihor、PeterWeinberg和BrianCollingham姓氏首字母的首字母命名)是一种用于处理文本的编程语言。它是一个很好的文本处理工具,可以扫描文件中的每一行,寻找与命令行中给出的模式相匹配的模式。如果找到匹配项,则继续执行下一个编程步骤。如果没有找到匹配项,则继续处理到下一行。awk程序是由一系列pattern-action对组成的:pattern{action}返回我们需要的,^$用来匹配空行,!它用于反转以查找非空行。awk默认的动作是print,所以我们连print都不写。4.tr$catin.txt|tr-s'\n'tr是translate的缩写,用于替换或删除输入数据集中的特定字符。-s用于在其输出中将相同相邻字符的序列压缩为单个字符:$mantrDESCRIPTION-s,--squeeze-repeats将最后指定的SET中列出的每个重复字符序列替换为该字符的一次出现5.vi$vifile:g/^$/dvi是模式编辑器。不同的按钮和击键可以改变不同的“模式”。命令模式下,g表示全局搜索,^$匹配一个空行,d表示删除一个匹配。到目前为止,删除空行的方法已经足够多了。以后我会写更多关于shell脚本的文章,包括但不限于:shell脚本基础知识;shell脚本的提示;shell脚本编程规范;shell脚本编写的开源项目分析;你喜欢贝壳吗?如果你有喜欢的文章和书籍,请分享给我,谢谢~
