众所周知,在Linux下"一切皆文件"的原则,一切配置文件都可以以文本的方式进行编辑、存储。故对文本文件的操作能力,决定着你是否能够在Linux下操纵自如。今天,就写下几个关于Linux下一些常用的文本处理命令。
1、文本文件查看命令:cat、more、less、head、tail
1.1 cat命令:连接并显示,当文本文件有多个时,将其连接并一个一个的完整地显示出来
eg:
cat /etc/inittab
cat /etc/fstab
cat /etc/inittab /etc/fstab
cat主要有三大功能:
1.一次显示整个文件。# cat filename
2.从键盘创建一个文件。# cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: # cat file1 file2 > file
cat命令的常用参数:
cat -n 或 --number 由 1 开始对所有输出的行数编号
cat -E 显示文本文件的行结束符
Linux的行结束符为$,而windows的行结束符为$+回车,
故在Linux上编辑的文本文件在windows中显示,都是只有一行
cat命令,以ctrl+c结束 、运行在bash之上;
1.2 文件查看之分屏显示:more、less、head、tail
more命令:more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读。more命令从前向后读取文件,因此在启动时就加载整个文件。
严格来说more命令只能实现"向后翻页",因为要想实现"往前翻页",当前光标必须是不在文件的尾部
空格键 space(向后一屏)
b键 back (向前一屏)
回车 (向后一行)
/ (搜寻字串)
less命令:less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。
在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。 less 在查看之前不会加载整个文件
空格键 space(向后一屏)
b键 back (向前一屏)
回车 (向后一行)
/ (搜寻字串)
pgup (向上一页)
pgdn (向下一页)
/ (搜寻字串)
? (搜寻字串)
head命令:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
查看文件的前n行,默认前10行
-n num:前num行
tail命令:tail 命令从指定点开始将文件写到标准输出.
-n num:查看文件尾部后num行
-f:查看文件尾部、不退出、等待显示后续追加至此文件的新内容
使用tail命令的-f选项可以方便的查阅正在改变的日志文件
tail -f filename会把filename里最尾部的内容显示在屏幕上
并且不断刷新,使你看到最新的文件内容.
三大利器:(必须会)
sed(文本处理类)、awk(文本处理类)、grap(文本查找类)
2、文本处理相关的命令:cut(剪切)、join(合并)、sed、awk
2.1 cut命令:详细内容,可以看我的博客:文本处理类命令之cut命令详解
-d:指定字段分隔符,默认是空格
-f:指定要显示的字段,
-f 1
-f 1,3(显示第1和第3个属性值,离散表示法)
-f 1-3(显示第1到第3个属性值,连续表示法)
2.2 文本排序命令:sort、uniq
文本排序:
sort(并不影响原文件中的内容,只是影响显示内容,相当于视图,默认升序,ASCII)
-n(按照数字大小排序,而非默认的ASCII码)
-r(逆序排列,可以和-n一起使用)
-t(字段分隔符)
-k(以哪个字段为关键字排序)
-u(排序后相同的行,只显示一次)
-f(排序时,忽略字符大小写)
关于sort命令的详解:请看我的博客——Linux下的文本排序命令之sort命令详解
uniq (报告和忽略重复的行),什么是重复的行:内容一致,互为相邻
-d:只显示重复的行
-D:
-c:显示文件中行重复的次数
uniq命令的功能是去掉文件中重复行输出。(不改变原文件)
uniq --help 可查看命令参数使用方法。
uniq file1 显示file1中内容,重复行只显示一次。
uniq -c file1 显示file1中内容,重复行只显示一次。在每行前面列出本行在文件中出现几次。
uniq -d file1 只显示file1中重复出现的行,且重复行只显示一次。
uniq -D file1 只显示file1中重复出现的行,且重复行全部显示。
uniq -f 2 file1 忽略每行前两个词,显示file1中内容,重复行只显示一次。
uniq -i file1 忽略大小,显示file1中内容,重复行只显示一次。
uniq -s 5 file1 忽略每行前5个字母,显示file1中内容,重复行只显示一次。
uniq -u file1 只显示file1中不重复的行。
uniq -w 5 file1 只比较每行前5个字母,显示file1中内容,重复的只显示一次。
2.3 文本统计命令之wc命令
文本统计:
wc:(统计一个文本中的:行数,单词数,字符数)
wc /etc/fstab
wc -l /etc/fstab统计行数
wc -w /etc/fstab统计单词数
wc -c /etc/fstab统计字节数
wc -m /etc/fstab统计字符数
wc -L /etc/fstab显示最长的一行包含多少个字符
2.4 字符处理命令之tr命令
字符处理命令:
tr:转换或删除字符
tr [OPTION]... SET1 [SET2]
SET表示字符集
如:tr ab AB
一个一个字符比较
-d 删除字符集中出现的所有字符,只需要给定一个字符集即可
详细请看我的博客:Linux下的字符处理命令之tr命令详解
Linux下常见的文本处理命令的归纳总结:
1、文本文件查看命令:cat、more、less、head、tail
2、文本处理相关的命令:cut(剪切)、join(合并)、sed、awk
3、文本排序命令:sort、uniq
4、文本统计命令之wc命令
5、字符处理命令之tr命令
原文地址:http://xxaqwqm.blog.51cto.com/9368217/1557387