Linux下面有很多经典的非常有用的命令,其中处理文本的命令就有很多。这些小工具经过了几十年时间的洗礼,现在已经变成了经典,已经变成了Linux下面的标准,其实它们一直是遵循着Linux的标准。下面就让我们一起看看这些经典的Linux文本处理命令。

一. sort

文件排序,通常用在管道中当过滤器来使用。这个命令可以依据指定的关键字或指定的字符位置,对文件行进行排序。使用-m选项,它将会合并预排序的输入文件。想了解这个命令的全部参数请参考这个命令的info页。

二. tsort

拓扑排序,读取以空格分隔的有序对,并且依靠输入模式进行排序。

三. uniq

这个过滤器将会删除一个已排序文件中的重复行。这个命令经常出现在sort命令的管道后边。

四. expand, unexpand

expand命令将会把每个tab转化为一个空格。这个命令经常用在管道中。

unexpand命令将会把每个空格转化为一个tab。效果与expand命令相反。

五. cut

一个从文件中提取特定域的工具。这个命令与awk中使用的print $N命令很相似,但是更受限。在脚本中使用cut命令会比使用awk命令来得容易一些。最重要的选项就是-d(字段定界符)和-f(域分隔符)选项。

六. paste

将多个文件, 以每个文件一列的形式合并到一个文件中,合并后文件中的每一列就是原来的一个文件。与cut结合使用,经常用于创建系统log文件。

七. join

这个命令与paste命令属于同类命令。但是它能够完成某些特殊的目地。这个强力工具能够以一种特殊的形式来合并两个文件,这种特殊的形式本质上就是一个关联数据库的简单版本。

join命令只能够操作两个文件。它可以将那些具有特定标记域(通常是一个数字标签)的行合并起来,并且将结果输出到stdout。被加入的文件应该事先根据标记域进行排序以便于能够正确的匹配。

八. head

把文件的头部内容打印到stdout上(默认为10行,可以自己修改)。这个命令有一些比较有趣的选项。

九. tail

将一个文件结尾部分的内容输出到stdout中(默认为10行)。通常用来跟踪一个系统logfile的修改情况,如果使用-f选项的话,这个命令将会继续显示添加到文件中的行。

十. wc

wc可以统计文件或I/O流中的"单词数量"。

十一. fold

将输入按照指定宽度进行折行。这里有一个非常有用的选项-s,这个选项可以使用空格进行断行(译者:事实上只有外文才需要使用空格断行,中文是不需要的)(请参考例子 12-23和例子 A-1)。

十二. fmt

一个简单的文件格式器。通常用在管道中,将一个比较长的文本行输出进行"折行"。

十三. col

这个命令用来滤除标准输入的反向换行符号。这个工具还可以将空白用等价的tab来替换。col工具最主要的应用还是从特定的文本处理工具中过滤输出,比如groff和tbl。(译注:主要用来将man页转化为文本。)

十四. column

列格式化工具。通过在合适的位置插入tab,这个过滤工具会将列类型的文本转化为"易于打印"的表格式进行输出。

十五. colrm

列删除过滤器。这个工具将会从文件中删除指定的列(列中的字符串)并且写到文件中,如果指定的列不存在,那么就回到stdout。colrm 2 4 <filename将会删除filename文件中每行的第2到第4列之间的所有字符。

Caution:如果这个文件包含tab和不可打印字符,那将会引起不可预期的行为。在这种情况下,应该通过管道的手段使用expand和unexpand来预处理colrm。

十六. nl

计算行号过滤器。nl filename将会把filename文件的所有内容都输出到stdout上,但是会在每个非空行的前面加上连续的行号。如果没有filename参数,那么就操作stdin。

nl命令的输出与cat -n非常相似,然而,默认情况下nl不会列出空行。

十七. pr

格式化打印过滤器。这个命令会将文件(或stdout)分页,将它们分成合适的小块以便于硬拷贝打印或者在屏幕上浏览。使用这个命令的不同的参数可以完成好多任务,比如对行和列的操作,加入行,设置页边,计算行号,添加页眉,合并文件等等。pr命令集合了许多命令的功能,比如nl, paste, fold, column, 和expand。

pr -o 5 --width=65 fileZZZ | more 这个命令对fileZZZ进行了比较好的分页,并且打印到屏幕上。文件的缩进被设置为5,总宽度设置为65。

一个非常有用的选项-d,强制隔行打印(与sed -G效果相同)。

十八. gettext

GNU gettext包是专门用来将程序的输出翻译或者本地化为不同国家语言的工具集。在最开始的时候仅仅支持C语言,现在已经支持了相当数量的其它程序语言和脚本语言。

想要查看gettext程序如何在shell脚本中使用,请参考info页。

十九. msgfmt

一个产生二进制消息目录的程序。这个命令主要用来本地化。

二十. iconv

一个可以将文件转化为不同编码格式(字符集)的工具。这个命令主要用来本地化。

二十一. recode

可以认为这个命令是上边iconv命令的专业版本。这个非常灵活的并可以把整个文件都转换为不同编码格式的工具并不是Linux标准安装的一部分。

二十二. TeX, gs

TeX和Postscript都是文本标记语言,用来对打印和格式化的视频显示进行预拷贝。

TeX是Donald Knuth精心制作的排版系统。通常情况下,通过编写脚本的手段来把所有的选项和参数封装起来一起传到标记语言中是一件很方便的事情。

Ghostscript (gs) 是一个 遵循GPL的Postscript解释器。

二十三. enscript

将纯文本文件转换为PostScript的工具,

比如, enscript filename.txt -p filename.ps 产生一个 PostScript 输出文件filename.ps。

二十四. groff, tbl, eqn

另一种文本标记和显示格式化语言是groff。这是一个对传统UNIX roff/troff显示和排版包的GNU增强版本,Man页使用的就是groff。

tbl表处理工具可以认为是groff的一部分,它的功能就是将表标记转化到groff命令中。

eqn等式处理工具也是groff的一部分, 它的功能是将等式标记转化到groff命令中。

二十五. lex, yacc

lex是用于模式匹配的词汇分析产生程序,在Linux系统上这个命令已经被flex取代了。

yacc工具基于一系列的语法规范,产生一个语法分析器。在Linux系统上这个命令已经被bison取代了。

二十六. tr

字符转换过滤器。

Linux下常用文本处理命令相关推荐

  1. linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 原创未通过审 ...

  2. linux下常用的关机命令

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...

  3. linux awk搜索文本最后个字符串,[转载]linux下的文本处理命令sedawkgrep

    0){ print line[var] v a r - - } } 此段程序读取一个文件的每一行,并用相反的顺序显示出来.我们使用NR作为数组的下标来存储文件的每一条记录,然后在从最后一条记录开始,将 ...

  4. c++清空一个txt文本_Linux下常用文本处理命令大全

    Linux中很多文本工具都使用到了正则表达式,正则表达式可以极大的简化linux系统管理工作,因为网上有很多正则相关的教程,所以这里不再讲述,我当时看的是菜鸟的正则表达式,看个一下午在实验几遍基本就会 ...

  5. Linux下常用的shell命令记录

    硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 这 ...

  6. Linux下常用 60个命令

    希望对大家有帮助!!详见附件!!!! 转载于:https://blog.51cto.com/it114/36259

  7. linux下常用关机命令

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...

  8. 《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式

    本节书摘来自异步社区<Linux指令从入门到精通>一书中的第4章,第4.3节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  9. Linux下常用命令以及应用场景

    Linux下常用命令以及应用场景 copy from 猿林锦风 1.切换用户 命令:su - paytest,回车输入密码. 2.查看文件系统 命令:df -a (用于查看文件系统的使用情况) 命令: ...

最新文章

  1. VOC2012 分割数据 转 lmdb 格式 python 代码
  2. 什么是按位移位(位移)运算符以及它们如何工作?
  3. sklearn中的回归决策树
  4. Lua脚本语法说明(修订)
  5. codeforces C. Xor-tree
  6. linux是否安装java环境,linux是否安装java环境
  7. Java 并发 —— yield/sleep、wait/notify、join
  8. MoveIt简单编程
  9. C语言项目大作业万历年,用C语言编写万历,详细代码.doc
  10. [转]库存那些事儿_8_盘点
  11. H5链接调起支付宝APP支付(个人收款)
  12. 服务器搭建织梦cms系统,零基础使用织梦cms搭建自己的网站「织梦建站」
  13. 使用上古神器帮姐姐完成寸照自动排版/打印
  14. aa44444444444
  15. 再见2018,感谢你的一路陪伴
  16. 快速查询每个快递单号物流详情,支持国内常用的快递公司
  17. Android手机直播(三)声音采集
  18. 百度云盘下载jdk1.8
  19. Pytorch 查看模型参数
  20. QQ个人账号/QQ群 链接如何分享

热门文章

  1. g++默认字符集utf-8_Java可能使用UTF-8作为其默认字符集
  2. jax-rs jax-ws_什么是JAX-RS注释? (第2部分)
  3. 视图中::text_新CalendarFX视图:MonthGridView!
  4. redis开启redis_Redis聚类
  5. gradle创建web工程_Gradle入门:创建Web应用程序项目
  6. java必读书籍_最佳5本Java性能调优书籍–精选,必读
  7. maven项目 ant_将旧项目从Ant迁移到Maven的4个简单步骤
  8. cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试
  9. 如何在Java 8中使用LocalDateTime格式化/解析日期-示例教程
  10. 免费网络研讨会:调试生产中Java的新方法