通配符和正则表达式的区别
语系会影响正则表达式
符号
[:alnum:] | [:alpha:] | [:blank:] | [:cntrl:] | [:digit:] | [:graph:] | [:lower:] | :print:] | [:punct:] | [:upper:] | [:space:] | [:xdigit:] |
---|---|---|---|---|---|---|---|---|---|---|---|
英文大小写字符与数字 | 英文大小写字符 | 空格键与[tab]键 | 代表键盘上面控制按键 | 代表数字 | 除了 空格符以外的所有按键 | 小写字符 | 任何可以被打印出来的字符 | 标点字符 | 大写字符 | 任何会产生空白的字符 | 十六进制的数字类型 |
grep
-An 是列出该行后边的n行
-Bn 是列出该行前边n行
正向查找和反向查找
利用[]来查找集合字符
查找含有某个字符的单词
查找不含有某个字符的单词
以大写字母开头的句子
不以大写字母开头的句子
以“.”为行尾的句子
空白行
. 代表一定有一个字符
*代表重复前一个字符,0次到无数次
可以使用{}来限定次数
sed
-n:使用该参数后,只显示经过sed处理的那一行,正常是所有数据均会内列到屏幕上
-e:直接在命令行模式上进行sed的操作编辑
-f:将sed的操作写在一个文件内
-r:使用扩展型正则表达式的语法
-i:直接修改读取的文件内容,而不是由屏幕输出
a:新增加一行,a的后面可以加字符
c:替换
d:删除
i:插入
p:打印,将某个选择的数据打印出来
s:替换
删除行
增加行
增加多行
行替换
将多行换成一行
打印指定行
上图中5,6,7行均输出了两次
字符替换与查找
注意netmask前边有个空格
可以通过字符查找来进行删除
文件修改
将前三行的最后一个标点符号‘.‘改成’!’
之前介绍的各种命令都可以在-i参数中使用,只不过原来并不会对文件产生影响,但是使用-i参数时是直接对源文件进行修改
扩展正则表达式
在使用正则表达式来去除空白行和注释行时,需要使用两次管道
通过扩展正则表达式可以进行简化
扩展正则表达式的字符
+ | ? | | | () | ()+ |
---|---|---|---|---|
重复一个及以上的前一个字符 | 零个或一个的前一个字符 | 或 | 找出群组字符串 | 找出多个重复群组的判别 |
格式化输出printf
awk数据处理
awk可以将一行分为多个字段,对每个字段进行处理,默认是以空格划分字段
逻辑运算字符
> | < | >= | <= | == | != |
---|---|---|---|---|---|
大于 | 小于 | 大于或等于 | 小于或等于 | 等于 | 不等于 |
输出每一行的第一列和第三列
通过限定条件来输出
文件对比
diff
参数:
-b:忽略一行当中,仅有多个空白的差异
-B:忽略空白行的差异
-i:忽略大小写的不同
cmp
以字节为单位进行比较