文本处理三剑客
文本处理三剑客
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 的进程。