例:比较file1 和 file2
[root@mazha1 mnt]# echo hello world! > file1 [root@mazha1 mnt]# echo HELLO WORLD! > file2 [root@mazha1 mnt]# diff file1 file2 1c1 < hello world! --- > HELLO WORLD!
-c 显示周围行
-u 按统一格式输出补丁
-r 比较目录的不同
例:比较目录:
[root@mazha1 mnt]# diff -r /mnt /var Only in /var: account Only in /var: adm Only in /var: cache Only in /var: crash Only in /var: db
patch file file.path //打补丁
-b 备份源文件
grep 关键字 文件/目录 //过滤出的信息以高亮显示
例:
[root@mazha1 mnt]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
grep -i 忽略大小写
[root@mazha1 mnt]# grep -i MAZHA /etc/passwd mazha:x:1000:1000:mazha:/home/mazha:/bin/bash
-n 显示关键字所在行
[root@mazha1 mnt]# grep -n mazha /etc/passwd 44:mazha:x:1000:1000:mazha:/home/mazha:/bin/bash
-c 显示过滤结果个数
-v 反向过滤
-E “关键字1|关键字2” 过滤多个关键字
-r 过滤目录中含有的关键字
例:找出文件中不含root和mazha的行:
[root@mazha1 mnt]# cat file1 mazha mazha /root root lilei hanmei tutu [root@mazha1 mnt]# grep -vE 'root|mazha' /mnt/file1 lilei hanmei tutu
注: ^关键字 表示以关键字为行首
关键字$ 表示以关键字为行尾
[root@mazha1 mnt]# grep -v '^r' /mnt/file1 mazha mazha /root root lilei hanmei tutu此时,除了以 r 为行首的行,其他都被打印
cut 截取字符
-d 指定分隔符
-f 1,7 显示指定的列
-c 1-7 显示指定字符
一般使用格式为: cut -d '分隔字符' -f 1,7
例:从ifconfig eth0 输出中截取ipv4地址
[root@mazha1 network-scripts]# ifconfig eno16777736 | grep inet | grep -v inet6 | cut -d ' ' -f 10 192.168.10.22
sort file 末认按照行首字符进行排序
-n 纯数字排序
-u 去冗余排序
|uniq -c 去除冗余并统计冗余次数
-t 指定分隔符
-k 指定列
例:
[root@mazha1 mnt]# sort file1 098577 11111 123 143366 234 321 456 654
uniq file 去冗余显示内容
-c 去冗余并统计冗余次数
-d 显示冗余行
-u 显示唯一行
例:
[root@mazha1 mnt]# uniq -c file1 1 123 3 321 1 456 2 654 1 234 2 11111 1 143366 1 098577
sed ‘s/原字符/替换字符/g' file
sed -e '策略1' -e '策略2' file
sed -i file 被转换后的内容输入到指定文件
sed ‘3,5s/原字符/替换字符/g’ 3-5行替换
sed 3d 屏蔽指定的第三行
sed 3p 复制第三行
sed -n 3p 只显示第三行
注:不导入文件的话,只作输出用,不保存。
例:
把文件中的1替换成9,2替换成8
[root@mazha1 mnt]# sed -e 's/1/9/g' -e 's/2/8/g' file1 983 389 389 389 456 654 654 834 99999 99999 943366 098577
awk [选项参数] 'script' var=value file(s)。。。怎么这么复杂。。。秀逗麻袋。。看不太懂啊。。