Linux文本的处理
Linux最最最最重要的哲学思想就是:一切皆文件。文件以及文件的操作在LInux操作系统中是非常的重要。熟练使用精悍小巧快捷的文本处理方式让效率更高。
一、文件查看命令
less 分页查看
[root@centos7 app]# cat /etc/passwd |less
cat
空行指的是没有任何字符,如果一行中只有空格那也不能称为空行。
- 对每一行进行编号,不论一行有没有内容都显示行号。
[root@centos7 app]# cat -n /etc/passwd
- 对非空行进行编号
如果一行当中只有空格,那么这一行也不是非空行。使用-b
时也进行编号
[root@centos7 app]# cat -b file
- 压缩空行
压缩连续的空行为一行,一行中只有空格那也不是空行
[root@centos7 app]# cat -s file
- 在每一行结束地添加$
[root@centos7 app]# cat -E $ /etc/passwd
二、分页查看内容
- 分页查看more
能显示文件剩余的百分比
[root@centos7 app]# more passwd
[root@centos7 app]# cat passwd | more
- 分页查看less
[root@centos7 app]# cat /etc/profile.d/colorls.sh | less
less可以使用搜索使用 /string
搜索字符串。
n
或者N
跳转到下一个或者上一个匹配。
三、截取文本的前行或者后行
- head
截取指定前几行或者前几字节的内容
[root@centos7 app]# cat colorls.sh | head -c 10 #显示指定前10字节
[root@centos7 app]# cat colorls.sh | head -n 10 #显示指定前10行
[root@centos7 app]# cat colorls.sh | head -10
- tail
tail与head正好相反,作用是截取文本的后几行或后几字节。
tail与head常常搭配使用截取除指定的行
[root@centos7 app]# cat clorls.sh | tail -c 10 #显示指定后10字节
[root@centos7 app]# cat clorls.sh | tail -n 10 #显示指定后10行
[root@centos7 app]# cat clorls.sh | tail -10 #显示指定后10行
- head与tail搭配使用,精确找出第三行
[root@centos7 app]# cat file|head -3|tail -1
四、截取文本的某一列
- cut
cut可以指定分隔符后,截取出指定的列。如果一行没有分隔符的话,整行输出。
#指定冒号为分隔符,只显示第2列
[root@centos7 app]# cat file |cut -d: -f2
#指定冒号为分隔符,显示2到3列
[root@centos7 app]# cat file |cut -d: -c2-3
#
#如果分隔符有歧义,那么需要加引号
[root@centos7 app]# cat file |cut -d";" -f2
- paste
将两个文本同行号的内容,输出到一行
默认使用tab做分隔符
[root@centos7 app]# paste file file2
1 a
1 a
1 a
#指定冒号作文分隔符
[root@centos7 app]# paste -d: file file2
#将所有内容输出到一行
[root@centos7 app]# paste -s file file2
1 1 1
a a a
五、文本统计工具与排序
- wc可以用来统计行数,字数,字符数
[root@centos7 app]# wc passwd
42 88 2308 passwd
行数 文字数 字符数 文件名
#
#统计行数
[root@centos7 app]# wc passwd -l
42 passwd
#统计字符数
[root@centos7 app]# wc passwd -w
88 passwd
#统计字节数
[root@centos7 app]# wc passwd -c
2308 passwd
- sort工具用来对文本进行排序
#删除重复的行
[root@centos7 app]# sort -u file2
#按字数的大小进行排序
[root@centos7 app]# sort -n file2
# -r 执行反方向(由上至下)整理
# -n 执行按数字大小整理
# -f 选项忽略(fold)字符串中的字符大小写
# -u 选项(独特,unique)删除输出中的重复行
# -t c 选项使用c做为字段界定符
# -k X 选项按照使用c字符分隔的X列来整理能够使用多次
- uniq 删除连续重复的行为一行
压缩连续重复的行为一行
[root@centos7 app]# uniq file2
#统计每行重复出现的次数
[root@centos7 app]# uniq file2 -c
#显示不曾连续重复的行
[root@centos7 app]# uniq file2 -u
练习题
1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址
[root@centos7 app]# ifconfig ens33 |head -2|tail -1|tr -s ' '|cut -d ' ' -f3
192.168.0.129
解析
ifconfig ens3--------显示网卡信息
head -2|tail -1------保留IP信息的一行
tr -s ' ' -----------将空格压缩
cut -d ' ' -f3-------空格为分隔符显示出第三列
2、查出分区空间使用率的最大百分比值
[root@centos7 app]# df -h| tr -s ' '|cut -d ' ' -f5
Use%
7%
0%
1%
解析
tr -s ' '--------------压缩空格
cut -d ' ' -f5---------以空格为分隔符,截取第五列
3、查出用户UID最大值的用户名、UID及shell类型
[root@centos7 app]# cut -d: -f1,3,7 /etc/passwd|sort -t : -k 2 -n|tail -1
nfsnobody:65534:/sbin/nologin
解析
cut -d: -f1,3 /etc/passwd-----以:为分隔符,取1,3列
sort -t : -k 2 -n-------------以:作为分隔符,按第二列从小到大排序
tail -1-----------------------排序后最后一行是最大的,所以取最后一行
4、查出/tmp的权限,以数字方式显示
#用命令本身的快捷方法
[root@centos7 app]# stat -c %a /tmp/
1777
#用本章的知识解决
[root@centos7 app]# stat /tmp/ | head -n4|tail -1|tr '(' '/'|cut -d/ -f2
1777
解析
stat /tmp/ -----------------此命令可以查看到目录数字形式的权限
head -n4--------------------数字权限在第四行,所以取出前四行
tail -1---------------------取出只有数字权限的一行
|tr '(' '/'-----------------设置分隔符
cut -d/ -f2-----------------取出权限
Linux文本的处理的更多相关文章
- linux文本操作界面 vi面板如何复制一行
linux文本操作界面 vi面板如何复制一行 1)把光标移动到要复制的行上2)按yy3)把光标移动到要复制的位置4)按p 在vi里如何复制一行中间的几个字符?如果你要从光标处开始复制 4 个字符,则先 ...
- Linux文本流
Linux文本流 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 文本流 文件用于数据的存储,相当于一个个存储数据的房子.我们 ...
- 最优秀的5个Linux文本编辑器
from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了 ...
- linux文本处理常用指令总结
引子 作为一个偏爱windows的程序员,以前做文本处理的时候总是喜欢在windows下用notepad++等图形化工具处理,比如有时需要把linux服务器上一个文件进行一次全局字符串替换这样简单的操 ...
- Linux系列教程(十)——Linux文本编辑器vim
通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...
- linux文本处理命令
linux文本处理命令 1.wc命令 基本介绍 文件的行统计.字符统计.字节统计 基本语法 wc [OPTION]... [FILE]... wc [OPTION]... --files0-f ...
- Linux文本编辑器vim
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
- [文件]Linux文本处理常用命令总结
转自:https://www.cnblogs.com/sheeva/p/6406285.html 引子 作为一个偏爱windows的程序员,以前做文本处理的时候总是喜欢在windows下用notepa ...
- Linux文本编辑器(九)
[教程主题]:Linux文本编辑器 [1]vi vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任 何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 由于对U ...
- linux文本分析利器awk
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
随机推荐
- jQuery Validate验证框架与 jQuery ajaxSubmit的联合使用
jQuery Validate验证框架自定义验证 第一步导入导入js库 <script src="<%=basePath%>static/js/jquery.js" ...
- IO (二)
1 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应的类: BufferedWriter BufferedReader 缓冲区要结合流才能使用. 在流的基础上对流的功能进行了增强. 2 Bu ...
- curl与grep的使用
[root@nhserver1 ~]# curl -s www.163.com | grep hot_pop_js.js | sed 's/www.[[:digit:]]*.com/111/' ...
- 几次面试后才弄懂的HashMap
本人大四,以前也开发过几个项目,Map相关集合也总用.但是从来没有研究过底层的实现,只知道杂用.结果在最开始的几次面试中一脸懵逼.认识到不足后,浅显的学习了一下,总结成一下几点.(如果写错了还望指正) ...
- java配置context.xml文件
2018-02-08 23:32:23 修改context.xml文件 自从学习了servlet后,每次修改里面的内容后,想要访问都要重启服务器,这样感觉很麻烦的,所以今天就教大家一个方法,只需要 ...
- ASP.NET MVC 5 ABP DataTables (二)
1)ABP DataTables 应用(一) 2) ABP DataTables 应用(二) JS DataTables 这个组件绑定数据必须要有自己的返回数据格式.但是ABP返回的格式直接绑定是错 ...
- (转)Unity控制反转和依赖注入
昨天,面试官说他们的项目使用的是Unity,我们的项目中使用的是autofac,看了一下,用法都差不多,就连方法的名字都是一样的哈,想了解的朋友可以看看这篇文章,作者讲解的挺详细的,关于autofac ...
- MySQL死锁[转]
案例描述 在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)inse ...
- Java I/O基础
字节流和字符流的区别,字节流一次读取一个字节,字符流一次读取的是一个Unicode码,读取了2个字节. 可以以文本编辑器打开的可以使用字符流读取,否则用字符流读取可能就会出错.图像文件就需要用字节流读 ...
- 洛谷 [P1403] 约数研究
本题的思想很好,正难则反 首先如果暴力枚举每个数的约数个数,一定会超时,那么我们就从约数的角度考虑,题目中问的是1~n的约数个数和,那么我们就枚举约数,看每个约数在1~n中出现过几次. #includ ...