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 只输出单词数。
-l 只输出行数。
wc –l /etc/passwd 可以显示目前/etc/passwd 有多少行