一、Cut命令
cut就是负责切割文件中数据使用的。
1. 基本语法
cut [-d '分隔符'] [-f 列号 提取第几列] filename
2. 案例说明
- 获取ip地址
ifconfig eth0 | grep "inet " | cut -d " " -f 10
172.22.4.38
-
对文件数据进行分隔
- 新建文本文件
hello stopping welcome to shell- 执行cut
[root@izwz9eldxtlzr8ehu1fmjbz tools]# cut -d " " -f 1 cut.txt hello welcome [root@izwz9eldxtlzr8ehu1fmjbz tools]# cut -d " " -f 1,2 cut.txt hello stopping welcome to [root@izwz9eldxtlzr8ehu1fmjbz tools]# cut -d " " -f 1,2,3 cut.txt hello stopping welcome to shell [root@izwz9eldxtlzr8ehu1fmjbz tools]# cut -d " " -f 3 cut.txt shell
二、sed
sed是一种流编辑器,把当前处理行存储缓冲区中,称为“模式空间”。不会改变源文件的内容。
1. 语法
sed [参数] 'command' filename
-
参数
- -e : 直接在指令列模式上进行sed的动作编辑。多个指令一起执行。
-
command
-
a
- a前面指定行数,未指定则所有行下面都添加
- 新增 a 后面可以新增字符串在下一行出现
-
d
- 在d前添加数字表示删除行数
- /hello/d 则表示删除包含
hello的行
-
s : 查找并且替换
-
2. 案例说明
- 添加
hello
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sed "1a hello" cut.txt
hello stopping
hello
welcome to shell
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sed "a hello" cut.txt
hello stopping
hello
welcome to shell
hello
- 删除包含
hello的行
[root@izwz9eldxtlzr8ehu1fmjbz tools]# cat cut.txt
hello stopping
welcome to shell
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sed "/hello/d" cut.txt
welcome to shell
- 替换
hello为你好
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sed "s/hello/你好/g" cut.txt
你好 stopping
welcome to shell
- 删除所有包含
hello的行,并且将welcome替换成欢迎
[root@izwz9eldxtlzr8ehu1fmjbz tools]# cat cut.txt
hello stopping
welcome to shell
hello world
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sed -e "/hello/d" -e "s/welcome/欢迎/g" cut.txt
欢迎 to shell
三、awk
四、sort
sort是用于排序并将结果标准输出
1. 基本语法
sort (选项)(参数)
-
选项
- -n :依照数值大小排序
- -r :以相反的顺序排序
- -t :设置排序时所用的分隔字符
- -k :指定需要排序的列
2. 案例说明
新增文本sort.txt,并且按第二列排序。
xiaoming:2:100
laowang:4:84
xiaodong:3:12
//升序
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sort -t : -nk 2 sort.txt
xiaoming:2:100
xiaodong:3:12
laowang:4:84
//降序
[root@izwz9eldxtlzr8ehu1fmjbz tools]# sort -t : -nrk 2 sort.txt
laowang:4:84
xiaodong:3:12
xiaoming:2:100
\