MyException - 我的异常网
当前位置:我的异常网» Linux/Unix » Linux 入门记要:十七、Linux 命令行文本/文件处理

Linux 入门记要:十七、Linux 命令行文本/文件处理工具

www.MyException.Cn  网友分享于:2013-10-16  浏览:0次
Linux 入门记录:十七、Linux 命令行文本/文件处理工具

一、文件浏览

cat      查看文件内容
more     以翻页形式查看文件内容(只能向下翻页)
less     以翻页形式查看文件内容(可以上下翻页)
head     查看文件的头几行(默认10行)
tail     查看文件的尾几行(默认10行)

  

二、正则匹配打印行

命令 grep 用来全局匹配正则表达式并打印所在行:

grep 'mingc' /etc/passwd        在该文件中匹配mingc的用户信息并打印所在行
find / -user mingc | grep ".*\.png$"  查找mingc的所有png文件(管道操作)

常用参数:

-i       搜索时忽略大小写
-n       显示结果所在行数
-v       输出不匹配该正则的行(类似于一个取反操作)
-An      在输出的时候包含结果所在行之后的指定n行
-Bn      在输出的时候包含结果所在行之前的指定n行

  

三、文本切割打印字段

命令 cut 常用来切割文本行、打印某些字段:

cut -d:fl /etc/passwd    打印passwd文件中冒号分割的第1个字段(用户名)(列出来多行的用户名)
grep mingc /etc/passwd | cut -d: -f3   打印mingc的用户信息汇总冒号分割的第3个字段(uid)

常用参数:

-d       指定分割字符(默认Tab)
-f       显示特定序号的字段(从1开始)
-c       显示特定范围字符(从第几个到第几个)

示例:

grep mingc /etc/passwd | cut -d: -f3     打印mingc的用户信息中冒号分割的第3个字段(uid)
grep mingc /etc/passwd | cut -d: -f6,7   打印mingc的用户主目录和登录Shell

grep mingc /etc/passwd | cut -c1-5       打印mingc的用户信息中第1~5个字符
grep mingc /etc/passwd | cut -c1-        打印mingc的用户信息中第1个字符之后的所有字符
grep mingc /etc/passwd | cut -c-5        打印mingc的用户信息中第5个字符之前的所有字符

  

四、文本统计

命令 wc 用于统计文件的行数、单词数、字符数等:

wc test.md

不带参数时默认输出一行,字段格式为:

行数 单词数 字符数 文件名

常用参数:

-l       只统计行数
-w       只统计单词数
-c       只统计字节数
-m       只统计字符数

  

五、文本排序

命令 sort 用于对文件内容进行排序(也可以对STDIN进行排序):

sort filename

常用参数:

-r        逆向(倒序)排序
-n        基于数字排序
-f        忽略大小写
-u        去重复(剔除重复行)
-t<分割符> 指定分隔符(一般配合-k参数使用,单纯分割毫无意义)
-k n      当指定分割符时,按照第n个字段进行排序(序号n从1开始)

 -r、-n、-t、-k 参数可以配合使用:

上图中,把 test.md 文件内容的每行按照冒号分割、基于数字对第3个字段进行逆向排序。

 

六、剔除重复行

命令 sort -u 可以剔除文件内容重复行,但副作用是进行了排序。

命令 uniq 可以剔除文件内容(相邻的)重复行:

 

七、文本比较

命令 diff 用来比较两个文件的区别:

diff test1.md test2.md

常用参数:

-i       忽略大小写
-b       忽略空格字符
-u       统一显示比较信息(一般用来生成patch文件)

示例:

diff -u old.md new.md > update.patch   把文件的更新信息生成到补丁文件

 

八、拼写检查

命令 aspell 用来显示检查英文拼写:

aspell check filename
aspell list < filename

(CentOS 6.9 64位系统里似乎没有这个命令,也不常用,不详述)

 

九、字符转换

命令 tr 用于从标准输入对字符进行转换处理。如果处理来自文件的输入,需要重定向。

删除关键字:

tr -d 'keyword' < filename

转换大小写:

tr 'a-z' 'A-Z' < filename

 

十、流式编辑——搜索替换

sed 命令是一种可以配合正则表达式使用的流式编辑工具。处理文件流时,把当前处理的行存储在临时缓冲区,称“模式空间”(pattern space),然后处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有发生改变,除非使用重定向存储输出。sed 命令主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法:

sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)

常用参数 options:

-e<script>   指定一个script来处理文本
-f<script>   指定一个script来处理文本
-n           仅显示处理后的结果

常用命令 command:

d    删除行
D    删除第一行
s    替换指定字符
h    拷贝内容到缓冲区
H    追加内容到缓冲区
g    获取缓冲区的内容,替换当前文本
G    获取缓冲区的内容,追加到当前文本后面
p    打印行
P    打印第一行
q    退出sed

示例:

sed 's/linux/unix/g' filename      s表示搜索替换,linux替换为unix,g表示全局替换,filename目标文件
sed 'l,50s/linux/unix/g' filename  1到50行进行全局替换
sed -e 's/linux/unix/g' -e 's/ming/mingc/g' filename  -e参数替换多个
sed -f script filename             指定一个script来处理文件

 

相关链接:sed 命令 - Linux 命令大全

文章评论

如何成为一名黑客
如何成为一名黑客
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员应该关注的一些事儿
程序员应该关注的一些事儿
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员都该阅读的书
程序员都该阅读的书
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
一个程序员的时间管理
一个程序员的时间管理
中美印日四国程序员比较
中美印日四国程序员比较
程序员必看的十大电影
程序员必看的十大电影
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员和编码员之间的区别
程序员和编码员之间的区别
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
 程序员的样子
程序员的样子
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
每天工作4小时的程序员
每天工作4小时的程序员
旅行,写作,编程
旅行,写作,编程
为什么程序员都是夜猫子
为什么程序员都是夜猫子
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
那些争议最大的编程观点
那些争议最大的编程观点
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
鲜为人知的编程真相
鲜为人知的编程真相
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
老程序员的下场
老程序员的下场
编程语言是女人
编程语言是女人
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java程序员必看电影
Java程序员必看电影
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
我的丈夫是个程序员
我的丈夫是个程序员
代码女神横空出世
代码女神横空出世
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
10个调试和排错的小建议
10个调试和排错的小建议
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
漫画:程序员的工作
漫画:程序员的工作
程序员的鄙视链
程序员的鄙视链
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有