正则表达式三剑客(grep sed awk)

正则表达式三剑客(grep sed awk)

aio

:help  看vim编辑器的属性

- 全屏编辑器:nano(字符工具), gedit(图形化工具)vivim
- 行编辑器:sed

vim /etc/passwd +26        定位行号

vim /etc/passwd +/user    定位名字

vim -d passwd   1.txt (ctrl +w +上下左右来回切换)        :qall!退出

查找文件:

/:从光标向下查找                        ^行首$行尾              

?:从光标向上查找                                 set nu显示行号  (:16)在编辑器里面进行行号跳转

dG删除光标及以下

dgg删除光标及以上

光标分割线 :set cul  (nocul)

范围处理动作:

d       删除
p 粘贴
y 复制
u 撤销刚才的动作

内容替换:

:17,22($)s/root/ROOT/ig

:%s/root/ROOT/g #全文替换                  不加g就是每行第一个匹配结果替换

:%s/root/test/ig #不区分大小写全文替换

可视化模式:

v(小写) 面向字符
V(大写) 面向整行  
ctrl-v(小写) 面向块

ctrl +v +  shift+i  +esc

小工具:

grep 过滤行

cut 列截取        cut -d:(字段分隔符) -f1,6,7   file1.txt     

                                        --output-delimiter=字符串 (输出字段分割符)

sort  排序也可以去重     -nr(降序) -n(升序) -u(去重)    -o (输出到一个文件)

uniq 去重+统计                -r(统计重复数)  -i(忽略大小写)

Tee 双向覆盖重定向

diff 可以比较两个文件 和目录里文件不同

paste 合并文件

tr 字符转换           tr -s 'e'  字符聚合    -d (删除)

ip  a show :只显示一个网卡

seq 生成数字      seq 10(起始值) 2(步长) 20 (结束值)

grep                         -i(不区分大小写)           -c(统计行数)

                                    -v (反转)               -E(使用拓展正则)

grep -nir 定位包含关键字的文件

sed       -i(更改源文件)           -e(可以进行多操作)        -E(拓展正则)

                -n(取消默认输出)

sed -n '\/dev\/ma/p'   sed -n '1,3p'(打印的是1-3行)     sed -n '1~3!p'  (~步长) (!取反)

sed -n '3s/nihao/hh/p' sed.txt     (#@/) 前面+数字就是第几行替换

sed -i '/sed6/s@sed@SED@' sed.txt

sed -i '3s/sed/SED/2'  sed.txt    替换第三行第二列(前边指定行号,后边指定列号)

sed -i '1i\woaini' sed.txt(在行前插入内容)

sed -i '2a\zpx' sed.txt(在所在行的下一行插入内容)

grep(行过滤)    sed(快速编辑)     awk(字段过滤) 编程语言

awk -F(定义字段分割符)

        -v(定义变量)

awk [参数] '[动作]'  【文件名】

BETGIN{}  {}  END{}

awk '{print $(NF-1)}' awk.txt

awk '{print $NR}' awk.txt 

awk -v 'FS=:' -v 'OFS=@' '{print $1,$7}' passwd

awk '{printf  "%s\n",$1}' awk.txt  我这个位置只能放字符串        

    占位符号                                           %d:我这个位置只能放数字        

                                                                %f:  我这个位置只能放带小数点的数字

正则表达式:

基本正则:BRE(需要转义)      + ? | () {} 需要用`` 转义才能作为元字符使用

拓展正则:ERE ()

通配符

1 正则表达式用来在文件中匹配符合条件的字符串,主要是目的是包含匹配。
- grepawksed 等命令可以支持正则表达式。
2 通配符用来匹配符合条件的文件名,通配符是完全匹配。
- lsfindcp 之类命令不支持正则表达式,可以借助于shell通配符来进行匹配。
.:匹配任意一个字符
       
*:匹配任意内容
       
?:匹配任意一个内容
[]:匹配中括号中的一个字符

m最少。n最多

转载请说明出处内容投诉
CSS教程网 » 正则表达式三剑客(grep sed awk)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买