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 有多少行
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。