第十章Linux对文本的操作命令及正则表达式

第十章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

猜你喜欢

转载自blog.csdn.net/i_love_xiao/article/details/80864850