一、sed
一 、sed
- sed->流式编辑器:擅长用既定的规则编辑不同的文件
- sed 对比 vim
- sed可以把处理文件的规则事先写好,然后用同一套规则编辑多个文件而vim只能一个个编辑===》用于用一套规则处理多个文件
-
- 2、sed处理文件,一次只处理一行,即同一时间内存中只有文件的一行内容无论文件多大,都不会对内存造成过大的压力====》用于处理大文件
- sed用法
- sed 选项 '规则' 文件
- 选项:-n 取消默认输出
- -i 把输出到屏幕中的内容(规则处理的结果+默认输出的结果)
- 规则:定位+命令
- 定位方式:
- 行号定位:
- sed '1p' a.txt 打印第一行
- sed '1,3p' a.txt
- sed '3p;5p' a.txt
- 行号定位:
正则定位
sed '/^egon$/p' a.txt #这一行只能有egon这个字符
[root@localhost ~]# sed '1,/egon/p' bug #打印第一行首次匹配到/egon/的行
- 没有定位代表定位所有行
-
[root@localhost ~]# sed ' ' bug
- 命令:
- d 删除
-
[root@localhost ~]# sed '1d;3d;5d' bug
-
- p 打印
-
[root@localhost ~]# sed '1d;3d;5d' bug
-
- s///gi 替换
- d 删除
sed '1,3s/egon/EGON/' 文件 sed '/^egon/s/egon/EGON/' 文件
[root@localhost ~]# sed '1,3s/egon/ddd/g' bug #替换全部
[root@localhost ~]# sed '1,3s/egon/ddd/i' bug #不区分大小写
[root@localhost ~]# cat bug | sed 's/egon/nnn/'
[root@localhost ~]# head -3 bug |sed 's/egon/mmm/'
[root@localhost ~]# ifconfig | sed 's/ens33/etho/' #替换网卡名
二 、awk
- 主要擅长处理有规律的文本,按照某一段截取,主要用于做一些格式化处理
- 用法:awk 选项 '规则' 文件路径
- 选项:
- -F: 指定分隔符
- 规则:定位+命令
- 定位:
- 行号定位:
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,$2}' 文件路径
-
-
- 没有定位代表定位所有行
- 命令:{print $n}
- 用法
- sed 选项 '定位+命令' 文件路径
- awk -F: '定位+命令' 文件路径
- sed 选项 '3,5p' 文件路径
- awk -F: 'NR>=3 && NR<=5{print $0}' 文件路径
[root@localhost ~]# head -10 /etc/passwd >1.txt
[root@localhost ~]# awk -F: 'NR<=3 || NR <=8{print $1,$3}' 1.txt
[root@localhost ~]# awk -F: 'NR>=3 && NR<=5{print $0}' 1.txt
[root@localhost ~]# awk -F' ' '{print $1,$2}' 2
[root@localhost ~]# ifconfig ens33 | awk 'NR == 2{print $0}' inet 192.168.12.239 netmask 255.255.255.0 broadcast 192.168.12.255
[root@localhost ~]# ifconfig ens33 | awk 'NR == 2{print $2}' 192.168.12.239
[root@localhost ~]# ifconfig ens33 | awk 'NR == 2{print $2}' | awk -F. '{print $1}' 192
[root@localhost ~]# awk -F: '{print NF}' 1.txt #这个文件以:分割,然后打印出每一行被切了多少的数量
三 、grep
- 擅长过滤:从一堆内容筛选出你想要的内容
- grep 选项 "过滤规则" 文件
- grep -n "root" /etc/passwd # 显示行号
- grep -i "" /etc/passwd # 忽略大小写
- grep -l 'egon' a.txt # 如果文件中但凡是存在包含egon的行就算过滤成功,会返回文件名
-
[root@localhost ~]# grep -rl 'root' /etc/passwd
- linux进程查看
[root@localhost ~]# ps aux | grep '[s]sh' [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 ~]# kill -9 9825
- windows关闭进程
快捷键:ctrl+alt+delete
C:Usersoldboy>taskkill /F /PID 12080 成功: 已终止 PID 为 12080 的进程。 C:Usersoldboy>tasklist | findstr "WeChat.exe" WeChat.exe 11412 Console 1 127,836 K C:Usersoldboy>taskkill /F /PID 11412 成功: 已终止 PID 为 11412 的进程。