正则表达式

支持正则表达式的命令:grep、vi、sed、awk

1、grep
grep -【nABC】 数字 字符串 文件
-n 显示行号
-A 把匹配到的行后面的n行也展示出来
-B 把匹配到的行前面的n行也展示出来
-C 把匹配到的行前后的n行也展示出来
grep中{}需要被转义成\{\}

2、sed
(1)新增
sed ‘第N行a 字符串’ 文件
在第几行之后新增一行字符串
若要新增多行,则在每一个新增的字符串后按反斜杠+Enter
(2)替换整行
sed ‘第N行c 字符串’ 文件
将第N行全部替换成字符串
(3)打印
sed -n ‘第M行,第N行p’ 文件
打印第M行到第N行的数据,加-n是为了只输出这几行

插曲:如何将换行符替换成空格?
这里介绍3种方法:
  • cat 文件 | tr '\n' ' '
  • cat 文件 | xargs
  • awk '{T=T" "$0} END{print T}' 文件

(4)替换字符串
sed 's/old/new/g' 文件
(5)直接修改原文件,而不输出到屏幕上
sed -i 命令 文件

3、文件的格式化与相关处理
(1)printf 格式化 打印内容
(2)常用的数据处理与统计工具 awk
awk '条件1 {} 条件2{} 条件3{}' 文件
awk是一门编程语言,关键字如下:
变量
$NN=0表示行记录,N=1,2...表示列
NF每行的单词数,单词的分隔符是FS
FS单词分隔符,默认是空格,指定分隔符的用法是BEGIN{FS="XXX"}
NR行号
判断条件
BEGIN在awk读入文件之前
END在awk读完文件之后
动作
print打印,后接变量或者字符串
printf格式化打印
其他
{}括起命令,里面可以使用if()判断条件,还可以使用;或者Enter分隔多个动作

4、文件对比命令
(1)diff
diff -【bBi】 from -/file to -/file
-代表stdin/stdout
-b 忽略一行中的多个空白
-B 忽略空白行
-i 忽略大小写
a新增
d删除
c修改
<属于左边的内容
>属于右边的内容
diff除了用来比较文件,还可以用来比较目录。
(2)cmp 比较的是字节
(3)patch
①patch一般与diff一起使用,用于比较文件版本新旧
diff -Naur old new > xxx.patch
xxx.patch是补丁文件
②patch -pN < 补丁文件 更新
patch -R -pN < 补丁文件 还原
-p 后面接数字,表示取消几层目录
-R 将新文件还原成旧文件
这个命令依赖于生成的补丁文件,原理是把old文件看成主干,new看成新分支,patch会将在new上所做的操作更新到old这个主干上。

5、打印文件命令 pr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值