一、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
- 行号定位:
正则定位
代码语言:javascript复制sed '/^egon$/p' a.txt #这一行只能有egon这个字符
代码语言:javascript复制[root@localhost ~]# sed '1,/egon/p' bug #打印第一行首次匹配到/egon/的行
- 没有定位代表定位所有行
[root@localhost ~]# sed ' ' bug
- 命令:
- d 删除
- p 打印
[root@localhost ~]# sed '1d;3d;5d' bug
- s///gi 替换
- d 删除
[root@localhost ~]# sed '1d;3d;5d' bug
代码语言:javascript复制 sed '1,3s/egon/EGON/' 文件
sed '/^egon/s/egon/EGON/' 文件
二 、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 的进程。