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的输入。
Shell之内容匹配与格式输出的更多相关文章
- shell查找匹配行,输出该行并输出下面的一行
查找匹配行,输出该行并输出下面的一行 grep: grep -A 1 'keyword' file awk:awk '$0~/keyword/{print $0; getline; print $ ...
- 2019年7月25日 shell练习--PAT题目1006:换个格式输出整数(失败案例)
让我们用字母 B 来表示“百”.字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<),换个格式来输出任一个不超过 3 位的正整数.例如 234 应该被输出为 BBSSS123 ...
- grep查询文本:问一个简单shell问题,将grep的输出赋值给一个变量
问一个简单shell问题,将grep的输出赋值给一个变量 用grep命令得到的输出赋值给一个变量不成功. grep命令如下: 代码: $ grep -c '^abc' file.txt 输出为22,表 ...
- shell grep正则匹配汉字
Shell grep正则匹配中文 测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的. #include<stdio. ...
- 如何隐藏shell脚本内容
从事 Linux 开发的同学,经常需要编写 shell 脚本,有时脚本中会涉及到一些敏感内容,比如一些 IP 地址,用户名以及密码等,或者脚本中有一些关键的代码, 所有这些内容你都不想别人阅读或者修改 ...
- 《The Linux Command Line》 读书笔记03 ls命令与长格式输出解释 文件权限
ls命令与长格式输出解释 文件权限 ls命令 ls 命令用于列出目录内容,不带参数时列出当前工作目录的内容,也可以指定目标目录(可以指定多个),列出目标目录下的内容. ls命令的参数 ls -l 长格 ...
- javascript 的Date 格式化, 模仿shell中date命令的格式
原文:javascript 的Date 格式化, 模仿shell中date命令的格式 shell 中显示当前的日期 [root@localhost]$ date '+%Y-%m-%d %H:%M:%S ...
- Mybatis 元素内容必须由格式正确的字符数据或标记组成
一个web应用,框架为SpringMVC Spring Mybatis ,昨天写了一下午的代码,因为逻辑较大,期间也没测,打算写完这个功能点在进行测试,谁知道写完的时候,tomcat根本启动不起来了, ...
- linux常用命令 print格式输出
格式化输出命令 printf '输出类型 输出格式' 输出内容 输出类型: %ns 输出字符串,n是数字指代输出的几个字符 %ni 输出整数,n是数字指代输出几个数字 %m.nf 输出浮点数.m和n是 ...
随机推荐
- 第4章 使用 Spring Boot
使用 Spring Boot 本部分将详细介绍如何使用Spring Boot. 这部分涵盖诸如构建系统,自动配置以及如何运行应用程序等主题. 我们还介绍了一些Spring Boot的最佳实践(best ...
- Java中Javadoc的{@link}与@see的简单区别
{@link}与@see这两个Javadoc注解都可以直接链接类和方法.用法基本一致. 但是@see必须顶头写,而{@link可以任意地方},如下所示: 参考: http://blog.csdn.ne ...
- SQL Server 监控系列 —— 二
http://www.cnblogs.com/bhtfg538/archive/2011/01/21/1939706.html
- Javascript中的e.keyCode大全
keycode 8 = BackSpace BackSpace keycode 9 = Tab Tab keycode 12 = Clear keycode 13 = Enter keycode 16 ...
- GO --微服务框架(二) goa
之前用过go语言的反射来做一些代码生成,参考这篇. 但是这种方式,入侵太强,需要执行对应的申明调用, 所以对GOA框架的自动生成非常感兴趣,于是仔细研究了一下,发现用的比较巧妙, 这里先卖个关子,先看 ...
- Maven plugin提示错误“Plugin execution not covered by lifecycle configuration”
myeclipse在其POM文件的一处提示出错如下: Plugin execution not covered by lifecycle configuration: org.apache.maven ...
- python的私有化
1.双下划线(__) 由双下划线開始的属性在执行时被混淆,所以直接訪问是不同意的.实际上以双下划线開始的属性 会在解释时在前面加上下划线和类名.如self.__num会被解析为self._classN ...
- 非常easy的JAVA反射教程
原创文章,转载请注明. 反射能够动态载入类,实例化对象,调用方法.如今以下面样例解说. 一.载入类. Class clazz = Class.forName("java.lang.Strin ...
- 无向图的点双连通分量(tarjan模板)
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #i ...
- odoo多币种
配置 启用多币种特性,并设置本位币 Gain exchange rate account 汇损收益科目,一般为财务费用下的二级科目 Loss exchange rate account 汇损损 ...