感谢支持
我们一直在努力

RHCE_RHEL6_255 U3.2 BASH文件处理工具

RHCE_RHEL6_255 U3.2 BASH文件处理工具

RHEL默认的shell是bash。Shell可直接输入命令,进行人机交互,也可以从特殊文件中读取命令—shell脚本。本节我们先要学习shell文本处理工具。

一、常用的文本处理:

1.cat 、less、 more、nl。都是用来显示文件的内容的。

命令

明:

cat

一次性输出。通常:交给后面的管道,或重定向

less

分页。“/”查找搜索 向上下翻页。“v”就可进入vi编辑

more

分页。不能向上翻页

nl

自动加行号

2.head:显示文件的前几行 。默认10行。tail:显示文件的最后几行。默认10行。 系统管理员可以使用“tail -f”监视系统日志。如何显示11-20行?

RHCE_RHEL6_255 U3.2 BASH文件处理工具

3.grep:过滤行。常用选项:

选项

明:

-i

不区分大小写搜索

-n

返回包含行号

-v

返回不包含模式的行

-Ax

匹配关键字的后x # grep -A 5 ftp /etc/passwd

-Bx

匹配关键字的前x

-r

递归式搜索,从当前目录开始

-c

匹配行的统计

–color

–color=auto # date –help |grep –color year

-l

列出至少有一行包含模式的文件的名称

^abc

abc 开头的行

abc$

abc 结尾的行

[[:upper:]]

指定一定是::root如:grep –color :root: passwd

RHCE_RHEL6_255 U3.2 BASH文件处理工具

4.cut:用于“剪切”文件中的列。

选项

明:

-d

指定分隔符(Tab是默认值)-d” 内有2个空格last

-f

指定列

-c

指定字符

RHCE_RHEL6_255 U3.2 BASH文件处理工具

5.tee:从标准输入设备读取数据,将其内容输出到标准输出设备,同时输出保存成文件。语法:tee [-ai][–help][–version][文件…]

-a或–append  附加到既有文件的后面,而非覆盖它。

–help  在线帮助。

–version  显示版本信息。

RHCE_RHEL6_255 U3.2 BASH文件处理工具

6.tr:用来从标准输入中通过替换或删除操作进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。

[root@desktop5 tmp]# tr -cds [“原字符串1”] [“改新的字符串2”] < o_file

选项

明:

-c

用字符串1中字符集的补集替换此字符集,要求字符集为ASCII

-d

删除字符串1中所有输入字符

-s

删除所有重复出现字符序列,只保留第一个

o_file

是来源文件

[a-z] a到z字符串。[A-Z] A到Z的字符串。[0-9] 数字串。

RHCE_RHEL6_255 U3.2 BASH文件处理工具

7.wc:word count。计算文件中的行、字、字节或字符数。

RHCE_RHEL6_255 U3.2 BASH文件处理工具

8.sort:默认按ascll码排序,升序(第一个字符)。通常与管道一起使用。

选项

明:

-r

反向排序

-n

按数值而非字符排序

-f

忽略大小写。默认小a小于大写A

 

-u

除去重复的行。同:sort file.txt |uniq -c

-k x

设置排序字段()X表示列。

-t

指定分隔符(默认空格)

9.uniq:“删除”文件中重复的行

选项

明:

-u

仅显示唯一

-d

显示重复行

-c

每行显示一次(包括出现计数)

RHCE_RHEL6_255 U3.2 BASH文件处理工具

10.sed:查找并替换。强大的流编辑器。主要是行。

选项

明:

s/old/new/

执行字符串替换,将“old”替换为“new”。第一个匹配

s/old/new/g

g全局

1,50s/

old/new/g1-50

/root//ftp/s

root开头的,以ftp结尾的行

-e

连接多个sed

-f

复杂的sed,可写在一个文件中。再用sed执行该文件

d

删除匹配的行

RHCE_RHEL6_255 U3.2 BASH文件处理工具

挑战:如何把nis用户转成passwd文件?

[root@desktop5 tmp]# ypcat passwd >nispasswd

[root@desktop5 tmp]# tail -n 1 nispasswd

如何把第二列换成x,换成x,就是/etc/passwd

sed是流编辑器, -r 正则表达式扩展 主要处理行

[root@desktop5 tmp]# sed -r ‘s/\$1\$.{8}\$.{22}/x/g’ nispasswd

11.awk处理列

如何变成shadow

计算天数:

[root@desktop5 tmp]# vim mddate.sh

for i in $(cut -d: -f1-2 nispasswd)

do

echo “$i:$[$(date +%s)/86400]:0:99999:7:::”

>done

[root@desktop5 tmp]# chmod u+x mddate.sh

[root@desktop5 tmp]# ./mddate.sh>passwd.shadow

过滤/etc/passwd 哪个用户uid是0

awk -F: ‘($3 == 0 {print $1})’ /etc/passwd

awk -F: ‘($3 == “” {print $1})’ /etc/passwd 第二列是空的

sed awk 专门一本书,限量版的。

12.diff:比较2个文件的不同。它还可以用于创建补丁文件。

选项

明:

-c

显示上下文周围的行

-u

使用统一输出格式(对于生成补丁文件很有用)

-r

从指定的目录开始对文件执行递归式比较

RHCE_RHEL6_255 U3.2 BASH文件处理工具

13.patch:修补命令。采用补丁文件patchfile(包含由diff生成的差异列表)并将这些差异用于生成补丁版的一个或多个原始文件。通常,补丁版替换原始文件,指定-b选项时,可以制作备份。将用.orig文件名后缀重命名原始文件。

15.read:读取输入和位置参数。

14.test:测试。

选项

明:

-f

判断文件是否存在

-d

判断是否是目录

-x

判断是否是可执行文件

15.read:读取输入和位置参数。

15.read:读取输入和位置参数。

15.read:读取输入和位置参数。

赞(0) 打赏
转载请注明出处:服务器评测 » RHCE_RHEL6_255 U3.2 BASH文件处理工具
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏