第十章Linux对文本的操作命令及正则表达式
我们将要学习:
1. 对文本文件的操作命令
2. 使用正则表达式的命令
3. 正则表达式
4. 对文本的操作
5. 组合命令完成复杂任务
1、文本文件操作命令
? cat 查看文件内容
? more 逐屏查看文件内容, 只能往下翻
? less 逐行查看文件内容 只能往上翻
? head 显示文件开头部分内容 默认头10行
? tail 显示文件结尾部分内容 默认尾10行
# tail /etc/mail/sendmail.mc 默认查看文件的后 10 行内容
# tail –n 20 /etc/passwd 查看文件后 20 行内容
注意: # tail –f /var/log/message 实时监控日志文件更新信息,非常重要
2、使用正则表达式的命令
? grep - 显示文件中匹配关键字的行
? locate -r “ 正则表达式 ”
? less 在 在 / 或 ? 查找时使用\
? vim 在查找或替换时
? sed(后面介绍)
? awk(后面介绍)
[root@localhost lianxi-linux]# grep binlll.sh 包含
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost lianxi-linux]# grep'\<bin\>' lll.sh 查以bin开头,以bin结尾的内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost lianxi-linux]#
grep -R 对整个目录及子文件内容全部删选 -l 只显示文件的文件名称 -v是不包含在内
grep -A5下5行 -B5上5行
$ 完全匹配
. 表示任何一个单一字符
.* 表示零个或任意个字符
^a 表示以 a 为首的行
a$ 表示以 a 为尾的行
\<good 表示以 good 开头的单词
sh\> 表示以 sh 结尾的单词
[abc] 表示当前位置 a、b 或 c
[^abc] 表示除了 a、b、c 以外的字符
a* 表示空、a、aa、aaa、乃至更多个 a
a ? 表示一个或零个单独的 a
a+ 表示 a、aa、aaa 乃至更多个 a
a\{n\} 表示重复了 n 次的 a a\{12\} a重复12次
4、对文本的操作
? diff -报告文件差异
? uniq - 去除文件中相邻的重复行,重复行只显示一行
? cut -只显示文件中的某一列,截取
? sort - 按序重排文本
? wc - 统计文件的行、词、字数
?grep – 删选
cut -d : -f1 /etc/passwd 显示出来passwd文件以:为分隔符的第一列单词
cut -c1-3 /etc/passwd 显示出passwd每一行的第一到第三个字符的信息
sort –t : +2 –n /etc/passwd 从+2第二列开始按照数字排列
-n 按照数字排列 -r 反向排序 -u 将重复的行去除
sort –t : +2 –n /etc/passwd > /tmp/a 排序并保存到a文件
wc –l /etc/passwd 显示有多少行
-c 只输出字节数。
-w 只输出单词数。
-l 只输出行数。
grep -R 对整个目录及子文件内容全部删选 -l 只显示文件的文件名称 -v是不包含在内
grep -A5下5行 -B5上5行
[root@localhost lianxi-linux]# cat a.sh
root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:sbin:/sbin:/sbin/nologin
daemon:x:2:2:daemon:/ain:/ain/nologin
daemon:x:2:2:daemon:/ain:/ain/nologin
[root@localhost lianxi-linux]# uniq a.sh 去除相同行的命令
root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:sbin:/sbin:/sbin/nologin
daemon:x:2:2:daemon:/ain:/ain/nologin
[root@localhost lianxi-linux]# diff a.shlll.sh 查看出两个文件不同的地方
1a2
> root:x:0:0:root:/root:/bin/bash
[root@localhost lianxi-linux]#
diff 和patch是一对使用 ????
软件升级:patch –p0 < patch.2.6.9