Linux文本文件处理

  版权声明本文章参考了《鸟哥的Linux私房菜》《Linux命令手册》《Linux命令大全》以及《Linux man pages》未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!


1 查看文件内容

1.1 查看普通文件内容

1.1.1 cat

  命令:cat [OPTION]… [FILE]…
  描述:顺序将FILE输出到标准输出。

常用选项作用
-A等效于 -vET
-b列出行号,仅针对非空白行做行号显示,空白行不标行号!
-e等效于 -vE
-E在每一行后添加$
-n显示行号
-s当遇到有连续两行以上的空白行,就代换为一行的空白行
-t等效于 -vT
-T以^I显示TAB键
-v运用 ^ 和 M- 引证,除了 LFD 和 TAB 之外
更多信息http://linux.51yip.com/search/ 和 man 手册
    http://man.linuxde.net/

1.1.2 tac

  命令:tac [OPTION]… [FILE]…
  描述:按行逆序将FILE输出到标准输出。

常用选项tac
更多信息http://linux.51yip.com/search/ 和 man 手册
    http://man.linuxde.net/

1.1.3 nl

  命令: nl [OPTION]… [FILE]…
  描述:将FILE输出到标准输出,并加上行号。

常用选项作用
-b STYLE按照STYLE显示行号,a全部显示行号,t空行不显示行号,n不显示行号,pBRE含有正则表达式BRE匹配的行显示行号
-n FORMAT根据FORMAT设置行号样式,ln向左对齐,前面不加零补位,rn 向右对齐,前面不加零补位,rz 向右对齐,前面加零补位
-w NUMBER设置行号的位数
更多信息http://linux.51yip.com/search/nl 和 man 手册
      http://man.linuxde.net/nl

1.1.4 more

  命令:more [options] file…
  描述:将FILE按页输出到标准输出。

常用选项作用
-d提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
-s当遇到有连续两行以上的空白行,就代换为一行的空白行
-number一页可显示的行数
+number从第 num 行开始显示
+/string在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
更多信息http://linux.51yip.com/search/more 和 man 手册
    http://man.linuxde.net/more
常用交互命令作用
h or ?显示帮助
SPACE显示接下来的k行,默认一屏
z显示接下来的k,默认一屏,若有参数则按照参数
RETURN向下滚动k行,默认1行,若有参数则按照参数
d or ^D滚动k行,默认为当前滚动值, 初始为11,若有参数则按照参数
q or Q退出
s向后跳过接下来的k行,默认为1
f向后跳过接下来的k屏,默认为1
b or ^B向前跳过k屏,默认为1 ,不能用于管道
去上一次搜索开始的地方
=显示当前行号
/pattern查找第k个与正则表达式匹配的内容,默认为1
n搜索上次正则表达式的第k次出现。 默认为1。
!command调用Shell,并执行命令
:!command调用Shell,并执行命令
v根据环境变量 VISUAL或EDITOR启动编辑器,如果没有设置则启用vi
^L重绘屏幕。
:n跳转到第k行,默认为1,
:p跳转到第k个前面的文件,默认为1,
:f显示当前文件名和行号
.重复上一个命令
更多信息http://linux.51yip.com/search/more 和 man 手册
    http://man.linuxde.net/more

1.1.5 less

  命令:less [options] file…
  描述:将FILE按页输出到标准输出。

常用选项
更多信息http://linux.51yip.com/search/less 和 man 手册
    http://man.linuxde.net/less
常用交互命令作用
空格键向下翻动一页;
[pagedown]向下翻动一页;
[pageup]向上翻动一页;
/字符串向下搜寻『字符串』的功能;
?字符串向上搜寻『字符串』的功能;
n重复前一个搜寻 (与 / 或 ? 有关!)
N反向的重复前一个搜寻 (与 / 或 ? 有关!)
g前进到这个资料的第一行去;
G前进到这个数据的最后一行去 (注意大小写);
q离开 less 这个程序;
更多信息http://linux.51yip.com/search/less 和 man 手册
    http://man.linuxde.net/less

1.1.6 head

  命令:head [OPTION]… [FILE]…
  描述:默认将每个FILE的前10行输出到标准输出。

常用选项作用
-c [-]NUM输出每个文件的前NUM字节,如果带有-,则输出除最后NUM字节以外的所有内容,NUM可以有前缀单位,如KB,GB
-n [-]NUM输出每个文件的前NUM行,如果带有-,则输出除最后NUM行以外的所有内容,NUM可以有前缀单位,如K,G
更多信息http://linux.51yip.com/search/head 和 man 手册
     http://man.linuxde.net/head

1.1.7 tail

  命令:tail [OPTION]… [FILE]…
  描述:默认将每个FILE的后10行输出到标准输出。

常用选项作用
-c [+]NUM输出每个文件的后NUM字节,如果带有+,则输出除前NUM字节以外的所有内容,NUM可以有前缀单位,如KB
-n [+]NUM输出每个文件的后NUM行,如果带有+,则输出除前NUM行以外的所有内容,NUM可以有前缀单位,如K
–pid=PID与-f联用,当指定的进程号的进程终止后,自动退出tail命令
更多信息http://linux.51yip.com/search/tail 和 man 手册
     http://man.linuxde.net/tail

1.1.8 od

  命令:od [OPTION]… [FILE]…
     od [-abcdfilosx]… [FILE] [[+]OFFSET[.][b]]
     od –traditional [OPTION]… [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]
  描述:查看非纯文本文档。

常用选项 作用
-t TYPEa 利用默认的字符来输出;c 使用 ASCII 字符来输出;d[size]利用十进制来输出数据,每个整数占用 size bytes ;f[size] 利用浮点数来输出数据,每个数占用 size bytes ;o[size] 利用八进制来输出数据,每个整数占用 size bytes ;x[size] 利用十六进制来输出数据,每个整数占用 size bytes ;
更多信息http://linux.51yip.com/search/od 和 man 手册
    http://man.linuxde.net/od

1.2 查看压缩文件内容

1.2.1 查看压缩文件——zcatbzcatxzcat

  命令:zcat [ -fhLV ] [ name … ]

  描述:等同于压缩工具 -d -c。不解压文件查看文件内容。

常用选项作用备注
-c将压缩的数据输出到屏幕上
-d解压缩;默认选项
-f目标存在时覆盖,或原文件是符号链接
-k不删除原文件
-q不显示警告信息
-t检验一个压缩文件的一致
-v压缩时显示相关信息
-z压缩
-#为压缩等级,1-9,默认6
-l查看压缩文件的压缩比列等信息bzcat不支持
-r递归压缩或解压目录中的每个文件,但不是打包仅zcat支持
-s使用小内存仅bzcat支持
-S SUF添加后缀SUF仅zcat支持
-e极限模式仅xzcat支持
更多信息http://linux.51yip.com/search/zcat
    http://man.linuxde.net/zcat
http://linux.51yip.com/search/bzcat
    http://man.linuxde.net/bzcat
http://linux.51yip.com/search/xzcat
    http://man.linuxde.net/xzcat
man 手册

1.2.2 查看压缩文件——zmorebzmore xzmore

  命令:zmore [file…]
     bzmore [file…]
     xzmore [file…]
  描述:查看压缩文件,但只能向后查看。

常用选项
更多信息http://linux.51yip.com/search/zmore
    http://man.linuxde.net/zmore
http://linux.51yip.com/search/bzmore
    http://man.linuxde.net/bzmore
http://linux.51yip.com/search/xzmore
    http://man.linuxde.net/xzmore
man 手册

1.2.3 查看压缩文件——zlessbzless xzless

  命令:zless [file…]
     bzless [file…]
     xzless [file…]
  描述:查看压缩文件,可以向前向后查看。

常用选项
更多信息http://linux.51yip.com/search/zless
    http://man.linuxde.net/zless
http://linux.51yip.com/search/bzless
    http://man.linuxde.net/bzless
http://linux.51yip.com/search/xzless
    http://man.linuxde.net/xzless
man 手册

2 查看两个文件的差异

2.1 查看两个普通文件的差异——diff

  命令:diff [-bBi] file1 file2
  描述:将file1与file2按行比较,以查看两个文件的差异。

常用选项作用
-b忽略空白的差异。
-B忽略空白行的差异
-i忽略大小写的差异
更多信息http://linux.51yip.com/search/diff 和 man 手册
    http://man.linuxde.net/diff

2.2 查看两个压缩文件差异——zdiffbzdiffxzdiff

  命令:zdiff [ diff_options ] file1 [ file2 ]
     bzdiff [ diff_options ] file1 [ file2 ]
     xzdiff [ diff_options ] file1 [ file2 ]
  描述:*Zdiff用于在压缩文件上调用diff程序。指定的所有选项都直接传递给diff。如果只指定file1,则将其与file1.gz的未压缩内容进行比较。如果指定了两个文件,则它们的内容(如果需要则先解压)会被传送到diff。输入文件不会被修改。 diff的退出状态将被保留。

常用选项
更多信息http://linux.51yip.com/search/diff 和 man 手册
    http://man.linuxde.net/diff

3 比较两个文件是否相同

3.1 比较两个普通文件是否相同——cmp

  命令:cmp [-s] file1 file2
  描述:将file1与file2按字节比较,以查看两个文件的差异。

常用选项作用
-s将所有的不同的字节都列出来。因为cmp预设仅会输出第一个发现的不同点。
更多信息http://linux.51yip.com/search/cmp 和 man 手册
    http://man.linuxde.net/cmp

3.2 比较两个压缩文件是否相同——zcmpbzcmpxzcmp

  命令:zcmp [ cmp_options ] file1 [ file2 ]
     bzcmp [ cmp_options ] file1 [ file2 ]
     xzcmp [ cmp_options ] file1 [ file2 ]
  描述:*cmp用于在压缩文件上调用cmp程序。指定的所有选项都直接传递给cmp。如果只指定file1,则将其与file1.gz的未压缩内容进行比较。如果指定了两个文件,则它们的内容(如果需要则先解压)会被传送到cmp。输入文件不会被修改。 cmp的退出状态将被保留。只显示第一个不同字节

常用选项作用
-b显示不同的字节
-i skip输入的文件都跳过前skip字节
-i skip1:skip2第一个文件跳过skip1字节,第二个文件跳过skip2字节
-l显示所有不同字节的,行号和ascii
-n limt只比较前limt字节
更多信息http://linux.51yip.com/search/cmp 和 man 手册
    http://man.linuxde.net/cmp

4 搜索文件内容

4.1 搜索普通文件内容——grepfgrepegrep

  命令:grep [-acinv] [-e] [-EF][ –color=auto] ‘PATTERN’ filename
     fgrep [-acinv] [-e] [-E][ –color=auto] ‘PATTERN’ filename
     egrep [-acinv] [-e] [-F][ –color=auto] ‘PATTERN’ filename
  描述:取出含有PATTERN的行。

常用选项作用
-a将 binary 文件以 text 文件的方式搜寻数据
-c计算找到 ‘搜寻字符串’ 的次数
-i忽略大小写的不同,所以大小写视为相同
-n顺便输出行号
-v反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的行!
-e使用正则表达式
-E使用扩展正则表达式,等同于egrep
-F将PATTER解释为字符串,而不是正则表达式,等同于fgrep
更多信息<http://linux.51yip.com/search/grep 和 man 手册
    <http://man.linuxde.net/grep
<http://linux.51yip.com/search/fgrep 和 man 手册
    <http://man.linuxde.net/fgrep
<http://linux.51yip.com/search/egrep 和 man 手册
    <http://man.linuxde.net/egrep

4.2 搜索压缩文件内容

4.2.1 zgrepbzgrepxzgrep

  命令:zgrep [ grep_options ] [ -e ] pattern filename…
     bzgrep [ grep_options ] [ -e ] pattern filename…
     xzgrep [ grep_options ] [ -e ] pattern filename…
  描述:*Zgrep用于在通过gzip压缩的文件上调用grep。选项 -[drRzZ] | –di* | –exc* | –inc* | –rec* | –nu*导致 zgrep以错误代码终止。所有其他选项直接传递给grep。如果没有输入文件就读取标准输入。

常用选项
更多信息http://linux.51yip.com/search/grep 和 man 手册
    http://man.linuxde.net/grep

4.2.2 zegrepbzegrepxzegrep

  命令:zegrep [ grep_options ] pattern filename…
     bzegrep [ grep_options ] pattern filename…
     xzegrep [ grep_options ] pattern filename…
  描述:*Zegrep等同于*zgrep -E,使用扩展的正则表达式对文本进行搜索。

常用选项
更多信息http://linux.51yip.com/search/egrep 和 man 手册
    http://man.linuxde.net/egrep

4.2.3 zfgrepbzfgrepxzfgrep

  命令:zfgrep [ grep_options ] pattern filename…
     bzfgrep [ grep_options ] pattern filename…
     xzfgrep [ grep_options ] pattern filename…
  描述:*Zfgrep等同于*zgrep -F,利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。

常用选项
更多信息http://linux.51yip.com/search/fgrep 和 man 手册
    http://man.linuxde.net/fgrep

5 文本处理工具——sed

  命令:sed [options] ’ [n1[,n2]]动作’ file(s)
     sed [options] -f scriptfile file(s)
  描述:文本处理。

常用选项作用
-n使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。
-e直接在命令行模式上进行 sed 的动作编辑;
-f-f scriptfile 可以执行 scriptfile 内的 sed 动作;
-rsed 的动作支持的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i直接修改文件内容,而不是由屏幕输出。
n1, n2不一定会存在,表示要处理的文本范围。
动作
a新增, a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)~
c替换, c 的后面可以接字符串,这些字符串可以取代 n1,n2 之间的行!
d删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i插入, i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运作~
s替换,可以直接进行取代的工作!通常这个s的动作可以搭配正规表示法!例如 1,20s/old/new/g
更多信息http://linux.51yip.com/search/sed 和 man 手册
    http://man.linuxde.net/sed

6 文本处理工具——awk

  命令:awk ‘条件1{动作1 } 条件2{动作2}…’ filename
  描述:文本处理。awk主要是处理每一行的字段内的数据,而默认的字段的分隔符为 “空格键” 或 “[tab]键”。若动作需要多个命令辅助时可用分号隔开。awk支持逻辑运算符<、<=、=、!=、>、>=。

变量名称作用
$0整行数据
$nn为大于0的整数,代表当前行的第n个字段的内容
NF每一行 ($0) 拥有的字段总数
NR目前 awk 所处理的是第几行数据
FS目前的分隔字符,默认是空格键
更多信息http://linux.51yip.com/search/awk 和 man 手册
    http://man.linuxde.net/awk

7 文件打印准备——pr

  命令:pr [OPTION]… [FILE]…
  描述:pr命令用来将文本文件转换成适合打印的格式,它可以把较大的文件分割成多个页面进行打印,并为每个页面添加标题。

常用选项作用
-h<标题>为页指定标题;
-l<行数>指定每页的行数。
更多信息http://linux.51yip.com/search/pr 和 man 手册
    http://man.linuxde.net/pr

8 格式化打印——printf

  命令:printf ‘打印格式 ’ 实际内容
  描述:格式化输出。

格式参数作用
\a警告声音输出
\b退格键(backspace)
\f清除屏幕 (form feed)
\n输出新的一行
\r亦即 Enter 按键
\t水平的 [tab] 按键
\v垂直的 [tab] 按键
\xNNNN 为两位数的数字,可以转换数字成为字符。
%ns那个 n 是数字, s 代表 string ,亦即多少个字符;
%ni那个 n 是数字, i 代表 integer ,亦即多少整数字数;
%N.nf那个 n 与 N 都是数字, f 代表 floating (浮点),如果有小数字数,假设我共要十个位数,但小数点有两位,即为 %10.2f 啰!
更多信息http://linux.51yip.com/search/printf 和 man 手册
    http://man.linuxde.net/printf

9 选取行中指定内容——cut

  命令:cut -d [-s] ‘delimiter’ -f 范围
     cut -c|b 范围
  描述:从输入数据的每一行中取出指定的数据。

常用选项作用
-d设置用来将输入数据截断为几段的单个字符
-s不显示不包含分隔符的行
-f以段为单位
-c以字符为单位
-b以字节为单位
选取范围
n1,n2,…显示n1,n2,…字节/字符/段
[n]-[m]显示n-m字节/字符/段,n缺省为1,m缺省为最后一行行号
更多信息<http://linux.51yip.com/search/cut 和 man 手册
    <http://man.linuxde.net/cut

10 排序——sort

  命令:sort [-fbMnrtuk] [file or stdin]
  描述:排序。

常用选项作用
-f忽略大小写的差异,例如 A 与 a 视为编码相同;
-b忽略最前面的空格符部分;
-M以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n使用『纯数字』进行排序(默认是以文字型态来排序的);
-r反向排序;
-u就是 uniq ,相同的数据中,仅出现一行代表;
-t分隔符,预设是用 [tab] 键来分隔;
-k用哪个区间 (field) 来进行排序
-o输入文件
更多信息<http://linux.51yip.com/search/sort 和 man 手册
    <http://man.linuxde.net/sort

11 过滤重复行——uniq

  命令:uniq [-cdiu] [-fsw n] input [output]
  描述:用于报告或忽略文件中的连续的重复行。

常用选项作用
-c显示每行重复次数
-d只显示重复行
-f跳过哪几段
-i忽略大小写
-s不比较每行的前n个字符
-u只显示唯一行
-w最多比较N个字符
更多信息<http://linux.51yip.com/search/uniq 和 man 手册
    <http://man.linuxde.net/uniq

12 统计文件的字数——wc

  命令:wc [-cmlLw] file…
  描述:计算文件行数、词数、字节数。

常用选项作用
-c显示字节数
-m显示字符数
-l显示行数
-L显示最大宽度
-w显示词数
更多信息<http://linux.51yip.com/search/wc 和 man 手册
    <http://man.linuxde.net/wc

13 字符替换、去重、删除——tr

  命令:tr [-cdst] SET1 [SET2]
  描述:对来自标准输入的字符进行替换、去重、删除。

常用选项作用
-c使用SET1的补集
-d删除 SET1 ;
-s把连续重复的字符以SET1中的单个字符表示
-t先删除第一字符集较第二字符集多出的字符。
更多信息http://linux.51yip.com/search/tr 和 man 手册
    http://man.linuxde.net/tr

14 过滤控制字符——col

  命令:col [-bfhpx] [-l num]
  描述:过滤控制字符。

常用选项作用
-b不输出任何退格符,在每列的位置上只打印最后写的那个字符.
-h输出TAB符而不是空格
-x 输出空格来代替TAB符
-lnum 设置缓冲行数
更多信息http://linux.51yip.com/search/col 和 man 手册
    http://man.linuxde.net/col

15 合并相同行——join

  命令:join [OPTION]… FILE1 FILE2
  描述:将文件1和文件2中指定数据相同的行合并为一行,且将相同字段放在第一个。

常用选项作用
-t delimiter设置分隔字符,默认为空格
-i忽略大小写的差异;
-1 FIELD设置第一个文件用于比较的字段,默认1
-2 FIELD设置第二个文件用于比较的字段,默认1
更多信息http://linux.51yip.com/search/join 和 man 手册
      http://man.linuxde.net/join

16 合并对应行——paste

  命令:paste [-ds ] FILE1 FILE2
  描述:将两行贴在一起,且中间以 TAB 键隔开。

常用选项作用
-d设置分隔符,默认为TAB
-s粘贴一个文件而不是对应行并删除换行符
更多信息http://linux.51yip.com/search/paste 和 man 手册
      http://man.linuxde.net/paste

17 将TAB转为空格——expand

  命令:expand [-t n] FILE…
  描述:将TAB转为空格。

常用选项作用
-t n一个tab转为n个空格,缺省为8
更多信息http://linux.51yip.com/search/expand 和 man 手册
      http://man.linuxde.net/expand

  版权声明本文章参考了《鸟哥的Linux私房菜》《Linux命令手册》《Linux命令大全》以及《Linux man pages》未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝月心语

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值