Linux上有庞大的文本处理工具,功能完善、高效。现在介绍下常用的几个命令。
一.less和cat
cat用于查看文件的内容。不管文件里有多少内容都会列举出来。如果是较长的文件,则不便于浏览。
$扩展,tac表示以行为单位,倒序查看。rec表示将一行的内容倒序查看。
less,用于分页查看文件内容。
在浏览时,可以对文件进行翻页。
向前翻半页 :u,向后翻半页 :d。
向前翻一页 :pageup、b,向后翻一页:pagedown、f、空格键。
向前翻一行:k、ctrl+p、上方向键,向后翻一行:j、ctrl+n、下方向键。
回到第一行:p、g,跳至最后一行:G。
可以对内容进行搜索。
/要搜索的关键字,从第一行搜索。?要搜索的关键字,从最后一行开始搜索。
$more,和less基本一样,但是不能向上翻页和搜索。
二.head和tail
head
head -c 5 filename 获取filename的前5字节。
head -n 5 filename 获取filename的前5行。
tail
tail -c 5 filename 获取filename的后5字节。
tail -n 5 filename 获取filename的后5行。
tail -f filename 跟踪显示文件新追加的内容,常用日志监控
配合使用:获取文件的第二行。
三.cut和paste
cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c按字符切割
--output-delimiter=STRING指定输出分隔符
paste [OPTION]... [FILE]...
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示
四.wc
计数单词总数、行总数、字节总数和字符总数
可以对文件或STDIN中的数据运行
-l 来只计数行数
-w 来只计数单词总数
-c 来只计数字节总数
-m 来只计数字符总数
五.sort
把整理过的文本显示在STDOUT,不改变原始文件
sort [options]file(s)
常用选项
-r 执行反方向(由上至下)整理
-n 执行按数字大小整理
-f 忽略(fold)字符串中的字符大小写
-u (独特,unique)删除输出中的重复行
-t c使用c做为字段界定符
-k X按照使用c字符分隔的X列来整理能够使用多次
六.uniq
从输入中删除前后相接的重复的行
uniq[OPTION]... [FILE]...
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
!!!连续且完全相同方为重复
七.diff和patch
diff
diff file1 file2 查看file2和file1的区别。
-u选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件。可以结合patch命令进行文件的升级。
八.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
-F:相当于fgrep,不支持正则表达式。
此命令需要用到正则表达式的知识,正则表达式基本内容如下表:
以上是标准的正则表达式,如果是扩展的正则表达式,即新版的正则表达式,有部分变化。是将特殊字符的转义字符\去掉。
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
好了,以上就是Linux下常见的文本处理命令,需要多多练习才能熟练理解并掌握。