Linux如何使用正则表达式命令?文本文件操作命令

Linux对文本操作命令及正则表达式:

一、文本文件操作命令:

cat

cat 是 concatenate 的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于 dos 中的 type。

参数:

-n 或 --number由 1 开始对所有输出的行数编号

-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号

-s 或 --squeeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行

-v 或 --show-nonprinting

#cat /etc/passwd查看用户帐号文件

more

当一个文件的内容超过一屏后,我们可以用 more 这个指令来逐屏察看文件内容。

#more install.log 查看 install.log 文件

less

less 在 more 的基础上,更可以逐行察看,前后翻页。

#less /etc/shadow 查看用户密码文件

head

head 显示文件开头部分内容,默认显示前十行参数 --lines 或者 –n 指明显示行数基本格式:

head [参数文件

-cN 输出文件的前 N 个字节。

-nN 输出文件的前 N 行。

-q 不输出文件名的信息。

-v 输出文件名的信息。

--help 在标准输出上输出帮助信息并退出。

--version 在标准输出上输出版本信息并退出

#head /etc/mail/sendmail.mc 默认查看文件的前 10 行内容

#head –n 20 /etc/passwd查看文件前 20 行内容

tail

tail 显示文件结尾部分内容,命令用法同 head,参数 -f 显示文件的纪实更新,用于监视日志文件

tail 默认显示文件列表中每个文件的后 10 行,如果没有文件名或文件名为“-”则其从标准输入中读取文件,如果有多个文件则其会在文件前面加上“==>文件名<==”以便区别。

-cN 显示文件后部的 N 比特大小的部分,N 后面可以跟 bkm 参数。

b512 比特的块。

k1k 的块。

m1M 的字节块。

-f 如果文件的大小在增长的话,tail 将跟随文件的增长而显示。

-l,-nN 显示文件的尾部 N 行。

-v 一直输出“==>文件名<==”形式的文件。

--help 在标准输出上显示帮助信息然后退出。

--version 在标准输出上显示版本信息然后退出。

# tail /etc/mail/sendmail.mc默认查看文件的后 10 行内容

# tail –n 20 /etc/passwd查看文件后 20 行内容

注意: # tail –f /var/log/message实时监控日志文件更新信息,非常重要

二、正则表达式:

.表示任何一个单一字符

.*表示零个或任意个字符

^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

三、对文本的操作:

diff

diff 用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。基本格式:

diff [-wV][-n <文件名长度>][-p <文件名长度>]

参数:

-a将所有文件当做文本文件来处理。

-b忽略空格造成的不同。

-B忽略空行造成的不同。

-q只报告何处不同,不报告具体信息。

-c使用纲要输出格式。

-e输出 ed 可以编辑的格式。

-f输出同-e 类似的反序格式。

-H 利用试探法加速对大文件的搜索。

-I忽略大小写的变化。

-l用 pr 对输出分页。

-n输出 RCS 格式。

-r比较目录时比较所有的子目录。

-v在标准输出上输出版本信息并退出。

uniq 用于去除文本中相邻的重复行。

-u 参数可以只显示那些没有被重复过的行。-d 显示有被重复过的行。

cut

cut 可以根据一个指定的标记(默认是 tab)来为文本划分列,然后将此列显示。使用权限:所有使用者

基本格式:cut -cnum1 -num2 filename

说明:显示每行从开头算起 num1 到 num2 的文字。

[root@uplooking root] $ cut –f1 –d: /etc/shadow 表示以:为分隔符,显示/etc/shadow 的第一列sort

sort 用来按各种需要重新排列文本,一般运用在一个管道之后。例如:

ls-a | grep bash | sort

$ ls-a | grep bash | sort -r

默认情况下 sort 按照字母顺序排列文本。

-n按照数字排序

-r反向排序

-u将重复的行去除

wc

wc 用来统计一个文件的行数、词数、字数并送到标准输出。也可以用-l(行数)、-w(词数)、-c(字数)来指定输出内容。

wc [参数文件

-c 只输出字节数。

-w 只输出单词数。

相关推荐