文本处理三剑客

文本处理三剑客

                        sed

                        awk

                        grep

 

一、sed 流式编辑器

1、sed可以把文件规则事先写好,同一套规则 、编辑多个文件

2、sed 处理文件,一次只处理一行 ,内存中只有文件的一行内容

 

 

sed  选项   "规则"   文件  》 组成

 

       选项             

sed -n     (取消默认输出)

sed -i        输出到源文件 硬盘规则处理结果 + 默认输出结果)

           

                   规则

                          【定位 + 命令】

                             定位 就是 ***行号***

                                                         ** sed   '1,3s/love/you/'   a.txt

                                                             sed   '1p:3p'   a.txt

                                          

正则定位

              sed 's/^you/love/'  a.txt

命令有 :d、p、s///gi

没有定位代表  定位所有  行数

                                                { 可以替换文件内容 }

 

二、awk 擅长处理有规律的文本,主要用于一些格式化处理

 

awk   选项   ‘规则’   文件路径

 

          选项

awk  -F :  【 :分隔符 】

awk  -F.

awk  -F" "

                ***规则= 定位 行号  + 命令***

                    定位 行号

                                   &&    并且 的意思(按的 发音)

                                    ||      或者 的意思

                                   NR    指行号“符号”

 

                                   awk -F: 'NR == 3{print $1,$3}' /etc/passwd
                                   awk -F: 'NR >= 3 && NR <=5{print $1,$3}' /etc/passwd
                                   awk -F: 'NR <= 3 || NR >=8{print $1,$3}' test.txt
                                   awk -F: 'NR == 3 || NR ==5 || NR==7{print $1,$3}' test.txt

 

 

正则定位

              awk -F:'//{print $1,$9}'   文件路径

命令

       {print $ }

没有定位代表  定位所有  行数

 

 

三、grep 过滤

grep   选项   '过滤规则'   文件

 

grep -n""    # 显示 序列 行数号 1,2,3,4,5,6,7,8............................

grep -i""     # 忽略大小写

grep -l""(是L)如果有 "定位内容" 就会返回文件名

 

grep 过滤 就是显示 "定位内容"  过滤掉其它无关内容

 

 

 

                                [root@web01 ~]# ps aux |grep 'vim'
                                root 9825 0.0 0.5 151692 5212 pts/1 S+ 12:05 0:00 vim a.txt
                                root 10190 0.0 0.0 112724 988 pts/0 R+ 12:30 0:00 grep --color=auto vim
                                [root@web01 ~]# ps aux |grep '[v]im'
                                root 9825 0.0 0.5 151692 5212 pts/1 S+ 12:05 0:00 vim a.txt
                                [root@web01 ~]#
                                [root@web01 ~]# kill -9 9825

 

 


                 windows
             
                                C:\Users\oldboy>taskkill /F /PID 12080
                                成功: 已终止 PID 为 12080 的进程。

 

                                C:\Users\oldboy>tasklist | findstr "WeChat.exe"
                                WeChat.exe 11412 Console 1 127,836 K

 

                                C:\Users\oldboy>taskkill /F /PID 11412
                                成功: 已终止 PID 为 11412 的进程。

 

posted @ 2020-10-23 21:19  每天写博客  阅读(99)  评论(0编辑  收藏  举报