Shell之内容匹配与格式输出
对于大文本或者有些特定格式的文本,有时我们要查找特定内容或定位指定的区域,这样就需要内容匹配。
关于内容匹配,我们常使用的有几个命令:
grep,支持正则,查找包含有匹配项的行。
cut,提取指定的列,默认是以tab键【制表符】作为分隔符;-d 显示指定分隔符;-f 提取第几列,如要提取多列用","分隔。
通常,我们是将grep与cut一起使用,先由grep找到指定内容的行,然后再由cut取指定的内容。
二,格式化输出
printf,是常用的格式化输出命令,用法有些类似C的printf();%s,%i,%f,分别输出字符串,整数,小数;%ns,指输出n位字串,如果不足n位则从左则用" "格补齐,若字串长度大于n位则正常输出。
如:
如果是文件的话,不能直接输出,必须以调用系统命令的方式输出 $(),如:
三,awk命令
关于awk的详细使用说明,可参考:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html。
awk的原理:把文件逐行读入,以空格或tab键为默认分隔符将每行切片,切开的部分再进行各种分析处理【每一块作为一个域,$0,表示整个,$1第一片,$2第二片,...】
语法:awk '{pattern + action}' {filenames}
同样,awk支持管道符,即前一命令的输出可作为awk的输入。