文本处理工具和正则表达式-创新互联
文件查看
cat
创新互联不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的网站设计、成都网站建设质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式营销型网站建设需求,让再小的成都品牌网站建设也能产生价值!
nl
tac
revcat常用选项
-E:显示行结束符$
-n:对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行
示例:
cat -E :显示行结束符$
cat -A:显示所有控制符
cat -n :对显示出的每一行进行编号 ,包括空行
cat -b:非空行编号
cat -s :压缩连续的空行成一行 (压缩相邻的空行成一行)
tac
把文件按相反方向显示
nl
跟cat -b效果一样,编号
rev
把文件同一行的内容反方向显示
查看非文本文件内容
hexdump
od
xxd
分页查看文件内容
more
less
示例:
more:分页查看文件
more -d: 显示翻页及退出提示
less:一页一页地查看文件或STDIN输出
显示文本前或后行内容
head
tail
tailf
head示例
默认显示前十行
head -c :显示文本前x字节
例:取出/etc/passwd 文件的前十个字节
head -n(n可省略) :显示文本前x行内容
例:取出/etc/passwd文件的前十行内容
tail示例
默认显示文本的后十行
tail -n :显示文件后x行
tail -f :跟踪文件新加内容
tail -F:跟踪文件名
练习
找出ifconfig “网卡名” 命令结果中本机的IPv4地址
cut
按列抽取文本
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING指定输出分隔符
显示文件或STDIN数据的指定列
cut -d: -f1 /etc/passwd
cat /etc/passwd | cut -d: -f7
cut -c2-5 /usr/share/dict/words
示例
cut -d -f 例:以冒号为分隔符,取出第1.3.4列
cut -c:按字符切割
练习
取出ip地址
取出版本号
取出磁盘空间使用率
查出/tmp的权限,以数字方式显示
paste
合并文件
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示
示例
paste -s:
例:把文件a/b.log文件合成一行显示
分析文本的工具
wc
文本数据统计
sort
整理文本
diff和patch
比较文件
.
wc
可用于统计文件的行总数、单词总数、字节总数和字符总数
可以对文件或STDIN中的数据统计
wc story.txt
39 237 1901 story.txt
行数 字数 字节数 常用选项
-l 只计数行数
-w 只计数单词总数
-c 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度
示例
wc -l: 只查看文件行数
wc -w :只计文本单词总数
wc -L :挑出a.log文件最长的一行
wc -m:只计字符总数
wc -c :只计字节总数
sort
文本排序
把整理过的文本显示在STDOUT,不改变原始文件
常用选项
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k # 选项按照使用c字符分隔的 # 列来整理能够使用多次
示例
sort -nr :把文本数字按大到小进行排序
sort -R:随机排序
例: 随机排序1到55的数字
sort -u : 去掉重复行
例:删除a.log文件的重复行
练习
查出分区空间使用率的大百分比值
查出用户UID大值的用户名、UID及shell类型
uniq
从输入中删除前后相接的重复的行
常用选项
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
注:连续且完全相同方为重复
常和sort命令一起使用
sort userlist.txt | uniq -c
示例
例:查看a.log文件不显示相邻的重复行
uniq -c :显示每行重复出现次数
例:查看a.log文件每行重复出现的次数
uniq -d : 只显示相邻的重复行
例:查看a.log文件重复过的行
uniq -u :只显示不重复行
例:查看文件a.log文件没有重复过的行
练习
统计访问过日志的IP地址,并取出访问次数最多的前三个
diff
比较两个文件之间的区别
-u :命令的输出被保存在一种叫做“补丁”的文件中 使用 -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件
.
patch
-b:复制在其它文件中进行的改变(要谨慎使用) 适用 -b 选项来自动备份改变了的文件
.
diff -u foo.conf foo2.conf > foo.patch
patch -b foo.conf foo.patch
示例
例:查看文件a.log和aa.log文件的不同
diff -u :显示的更加详细
例:
文本处理三剑客sed
grep:文本过滤(模式:pattern)工具
sed:stream editor,文本编辑工具
awk:Linux上的实现gawk,文本报告生成器
grep
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检 查;打印匹配到的行
模式:由正则表达式字符及文本字符所编写的过滤条件
常用选项--color=auto: 对匹配到的文本着色显示
-m # 匹配#次后停止
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
-E 使用ERE
-F 相当于fgrep,不支持正则表达式
-f file 根据模式文件处理
示例
从/etc/passwd中找出包含root的行
grep -m
例: 过滤/etc/passwd中出现的前两次bash
grep -v
例: 显示/etc/passwd文件中不匹配到bash的行
grep -i :忽略大小写
grep -n
例:显示/etc/passwd文件中匹配到root在文件中的行数
grep -c
例:统计/etc/passwd文件中匹配到root的行数
grep -o
例:只显示/etc/passwd文件中匹配到的bash字符串
grep -q
例: 不输出任何信息
grep -A
例:显示找到root行的后三行
grep -B
例: 显示找到root行的前三行
grep -C
例:显示找到root行的前三行和后三行
grep -e
例 :显示/etc/passwd文件中匹配到root或bash的行
grep -f
例:满足greo.log文件中任意一行的都显示出来
例:
正则表达式
由一类特殊字符及文本字符所编写的模式, 其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
分两类基本正则表达式:BRE,grep,vim
扩展正则表达式:ERE,grep -E, egrep,nginx
练习
取出分区利用率大的值
例
例:搜索以bash结尾的行
egrep及扩展的正则表达式
egrep = grep -E
扩展正则表达式的元字符:
字符匹配:
.任意单个字符 [] 指定范围的字符 [^] 不在指定范围的字符
次数匹配:* 匹配前面字符任意次
? 0或1次
- 1次或多次
{m} 匹配m次
{m,n} 至少m,至多n次
.
位置锚定:
^ 行首
$ 行尾
\<, \b 语首
\>, \b 语尾
.
分组:
()
后向引用:\1, \2, ...
.
或者:
a|b a或b
C|cat C或cat
(C|c)at Cat或cat
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻标题:文本处理工具和正则表达式-创新互联
新闻来源:http://hbruida.cn/article/ihoie.html