码迷,mamicode.com
首页 > 其他好文 > 详细

文本处理工具

时间:2016-08-06 22:02:07      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:文本处理工具

文件查看命令:cat, tac,rev

cat [OPTION]... [FILE]...

-E: 显示行结束符$

-n: 对显示出的每一行进行编号

-A:显示所有控制符

-b:非空行编号

-s:压缩连续的空行成一行

示例:查看/etc/issue文件中的内,并显示行编号

技术分享

分页查看文件内容

more: 分页查看文件

more [OPTIONS...] FILE...

-d: 显示翻页及退出提示

less:一页一页地查看文件或STDIN输出

查看时有用的命令包括:

/文本搜索文本

n/N跳到下一个or 上一个匹配

less命令是man命令使用的分页器

显示文本前或后行内容

head

head [OPTION]... [FILE]...

-c #: 指定获取前#字节

-n #: 指定获取前#行

-#:指定行数

tail

tail [OPTION]... [FILE]...

-c #: 指定获取后#字节

-n #: 指定获取后#行

-#:

-f: 跟踪显示文件新追加的内容,常用日志监控

示例:显示/etc/passwd文件的首两行,最后两行

技术分享

按列抽取文本cut和合并文件paste

cut [OPTION]... [FILE]...

-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

paste 合并两个文件同行号的列到一行

paste [OPTION]... [FILE]...

-d 分隔符:指定分隔符,默认用TAB

-s : 所有行合成一行显示

paste f1 f2

paste -s f1 f2

示例:取出/etc/passwd文件中的用户名,UID,默认shell

技术分享

收集文本统计数据wc

计数单词总数、行总数、字节总数和字符总数

可以对文件或STDIN中的数据运行

$wcstory.txt

392371901story.txt

行数字数字符数

使用-l来只计数行数

使用-w来只计数单词总数

使用-c来只计数字节总数

使用-m来只计数字符总数

示例:显示/etc/passw文件的行数,单词数,字符总数

技术分享

文本排序sort

把整理过的文本显示在STDOUT,不改变原始文件

$sort[options]file(s)

常用选项

-r执行反方向(由上至下)整理

-n执行按数字大小整理

-f选项忽略(fold)字符串中的字符大小写

-u选项(独特,unique)删除输出中的重复行

-t c选项使用c做为字段界定符

-k X选项按照使用c字符分隔的X列来整理能够使用多次

示例:将/etc/passwd文件中UID按从大到小排序

技术分享

uniq

uniq命令:从输入中删除重复的前后相接的行

uniq[OPTION]... [FILE]...

-c: 显示每行重复出现的次数;

-d: 仅显示重复过的行;

-u: 仅显示不曾重复的行;

连续且完全相同方为重复

常和sort 命令一起配合使用:

sort 1.txt | uniq-c

技术分享

Linux上文本处理三剑客之grep

grep:文本过滤(模式:pattern)工具;

grep, egrep, fgrep(不支持正则表达式搜索)

grep: Global search REgularexpression and Print out the line.

作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行;

模式:由正则表达式字符及文本字符所编写的过滤条件

grep [OPTIONS] PATTERN [FILE...]

grep root /etc/passwd

grep "$USER" /etc/passwd

grep ‘$USER‘ /etc/passwd

grep `whoami` /etc/passwd

grep命令选项

--color=auto: 对匹配到的文本着色显示;

-v: 显示不能够被pattern匹配到的行;

-i: 忽略字符大小写

-n:显示匹配的行号

-c: 统计匹配的行数

-o: 仅显示匹配到的字符串;

-q: 静默模式,不输出任何信息

-A #:after, 后#行

-B #: before, 前#行

-C #:context, 前后各#行

-e:实现多个选项间的逻辑or关系

grep –e ‘cat ’ -e ‘dog’ file

-w:整行匹配整个单词

-E:使用ERE

字符匹配:

. :匹配任意单个字符;

[] :匹配指定范围内的任意单个字符

[^] :匹配指定范围外的任意单个字符

[:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数

*:匹配前面的字符任意次,包括0次

贪婪模式:尽可能长的匹配

.*:任意长度的任意字符

\?:匹配其前面的字符0或1次

\+:匹配其前面的字符至少1次

\{m\}:匹配前面的字符m次

\{m,n\}:匹配前面的字符至少m次,至多n次

\{,n\}:匹配前面的字符至多n次

\{m,\}:匹配前面的字符至少m次

示例:找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

技术分享

本文出自 “每天进步一点点” 博客,谢绝转载!

文本处理工具

标签:文本处理工具

原文地址:http://563349612.blog.51cto.com/11096134/1835092

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!