《Linux指令从入门到精通》——4.4 Linux下的文本编辑指令

简介: colrm指令可以从标准输入中读取数据删除指定的列,输出到标准输出。如果指令中参数只包含开始列,将删除指定列之后的所有的列;如果指令中参数包含开始列和结束列,将删除两个列值之间的所有的列。指令还可对指定文件进行操作。

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

4.4 Linux下的文本编辑指令

4.4.1 col指令:过滤控制字符
学会滤除控制字符

col [-可选参数]

col指令过滤控制字符,可以将文件的内容转换为纯文本模式,可处理man指令的输出数据。同时col指令还能使用多个空格代替tab,能用于转存nroff和tbl的输出。

可选参数及其说明如下:
screenshot

范例425 过滤控制字符,并保存为文本文件。

[root@localhost yy]# man cat > h.txt
[root@localhost yy]# cat h.txt
CAT(1)                              User Commands                                CAT(1)
N^HNA^HAM^HME^HE
      cat-concatenate files and print on the standard output
S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS
c^Hca^Hat^Ht [_^HO_^HP_^HT_^HI_^HO_^HN]... [_^HF_^HI_^HL_^HE]...
------------------------------------------------------------------------------------
[root@localhost yy]# man cat | col -b > h1.txt    //滤掉RLF和HRLF字符
[root@localhost yy]# cat h1.txt
CAT(1)                              User Commands                                 CAT(1)
NAME
      cat-concatenate files and print on the standard output
SYNOPSIS
      cat [OPTION]... [FILE]..
------------------------------------------------------------------------------------

执行指令“man cat | col -b > h1.txt”将cat的man信息重定向到纯文本文件h1.txt使用cat指令输出结果,文本中nroff 控制字符已经滤出。

4.4.2 colrm指令:删除指定的列
学会删除文件中的指定列

colrm [开始列号[结束列号] ]

colrm指令可以从标准输入中读取数据删除指定的列,输出到标准输出。如果指令中参数只包含开始列,将删除指定列之后的所有的列;如果指令中参数包含开始列和结束列,将删除两个列值之间的所有的列。指令还可对指定文件进行操作。

范例426 删除指定的列及其以后的所有列。

[root@localhost ~]# colrm 3            //删除指定的第3列及其以后所有列
asdasdghhkl                            //输入数据,回车
as                                    //输出数据中删除了指定列及其之后的所有列
dghjjk                                //输入
dg                                    //输出 输入“ctrl+d”退出
[root@localhost ~]#

执行指令“colrm 3”从标准输入输入“asdasdghhkl”回车输出为“as”,输入数据“dghjjk”输出“dg”,输入“ctrl+d”退出指令。

范例427 删除指定的两列及其中间的所有列。

[root@localhost ~]# colrm 3 5        //删除指定列
asdasdghhkl                        //输入数据,回车
asdghhkl                            //输出数据
dghjjk                                //输入
dgk                                    //输出  输入“ctrl+d”退出
[root@localhost ~]#

执行指令“colrm 3 5”从标准输入输入“asdasdghhkl”回车输出为“asdghhkl”,输入数据“dghjjk”输出“dgk”,输入“ctrl+d”退出指令。

范例428 删除指定文件中的列。

[root@localhost yy]# cat a1                //显示文件a1的内容
Hello everyone
Hello everybody
How are you
Fine thank you and you
[root@localhost yy]# colrm 4 <a1        //删除文件a1每一行的第4列及其之后的所有列
Hel
Hel
How
Fin
[root@localhost yy]# colrm 1 3 <a1        //删除文件第1~3列之间的所有列
lo everyone
lo everybody
are you
e thank you and you
[root@localhost yy]#

执行指令“colrm 4

4.4.3 comm指令:比较排序文件
掌握对两个有序文件进行比较的方法

comm [-可选参数] 文件1 文件2

comm指令将两个排序文件逐行进行比较,然后输出结果。在不指定参数时,比较结果将分成三部分输出:一、输出文件1的独有行;二、输出文件2 的独有行;三、输出文件1和文件2的共有行。如果指令中文件名称为“-”,指令将从标准输入中读入。

可选参数及其说明如下:
screenshot

范例429 比较排序文件。

[root@localhost yy]# cat a1        //显示文件a1的内容
Hello everyone
Hello everybody
How are you
Fine thank you and you
[root@localhost yy]# cat a2        //显示文件a2的内容
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa
Fine thank you and you
[root@localhost yy]# comm a1 a2    //比较排序文件a1和a2
          aaaaaaaaaaaaaa
          aaaaaaaaaaaaaa
          aaaaaaaaaaaaaa
Hello everyone
Hello everybody
How are you
                Fine thank you and you
[root@localhost yy]#

执行指令“comm a1 a2”比较排序文件a1和a2,结果分三部分输出三部分的内容。第一部分是文件1单独含有的行;第二部分是文件2单独含有的行;第三部分是两个文件共有的行。如上所示。

范例430 比较排序文件,同时对文件进行输出选择。

[root@localhost yy]# cat a1            //显示文件a1的内容
Hello everyone
Hello everybody
How are you
Fine thank you and you
[root@localhost yy]# cat a2            //显示文件a2的内容
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa
Fine thank you and you
[root@localhost yy]# comm -1 a1 a2    //比较排序文件a1和a2,文件a1单独含有的行不显示
 aaaaaaaaaaaaaa
 aaaaaaaaaaaaaa
 aaaaaaaaaaaaaa
                Fine thank you and you
[root@localhost yy]# comm -2 a1 a2    //比较排序文件a1和a2,文件a2单独含有的行不显示
Hello everyone
Hello everybody
How are you
                Fine thank you and you
[root@localhost yy]# comm -3 a1 a2    //比较排序文件a1和a2,文件a1和a2共有的行不显示
          aaaaaaaaaaaaaa
          aaaaaaaaaaaaaa
          aaaaaaaaaaaaaa
Hello everyone
Hello everybody
How are you
[root@localhost yy]#

执行指令“comm.-1 a1 a2”,“comm. -2 a1 a2” 和“comm. -3 a1 a2”比较排序文件a1和a2,同时通过对参数的选择实现不同的输出。如上所示。

4.4.4 fmt指令:编排文本文件
掌握对文件格式进行编排的简单方法

fmt [-可选参数] [文件]

fmt指令将依照指定的格式重排指定文件里的内容,然后输出到标准输出。若指令中未指定文件,从标准输入读取数据。

必要参数的具体说明如下:

screenshot

范例431 对指定文件进行重新编排。

[root@localhost yy]# cat sr                //显示文件sr的内容
asdfgjkjl
asdsfgfhgjk
adsfghjklk
asfghk

q
sjkdfgdjkfg
sdjkdfhdjkfg
jsdhfklh
hgskjg
 [root@localhost yy]# fmt a1                    //重新编排文件sr
asdfgjkjl asdsfgfhgjk adsfghjklk asfghk

q sjkdfgdjkfg sdjkdfhdjkfg jsdhfklh hgskjg
[root@localhost yy]# cat sr | fmt                //重新编排文件sr
asdfgjkjl asdsfgfhgjk adsfghjklk asfghk

q sjkdfgdjkfg sdjkdfhdjkfg jsdhfklh hgskjg
[root@localhost yy]# cat sr
sdfgjkjl
asdsfgfhgjk
adsfghjklk
asfghk

q
sjkdfgdjkfg
sdjkdfhdjkfg
jsdhfklh
hgskjg
[root@localhost yy]#

执行指令“fmt sr” 和指令“cat sr | fmt”对文件sr重新进行编排。

范例432 对起始字符为指定字符串的列进行合并。

[root@localhost yy]# cat a1                        //显示文件a1的内容
Hello everybody
Hello everyone
How are you
[root@localhost yy]# fmt –p hello a1                //对文件重新进行编排
Hello everybody Hello everyone
How are you
[root@localhost yy]#

执行指令“fmt –p hello a1”将从标准输入设备读取数据,然后进行编排。

范例433 从标准输入读取数据进行编排。

[root@localhost yy]# fmt                        //对输入数据进行重新编排
Afdsf ag
;agrsdfh
Fgjksdghfgj
Adfghfghj sdfh
Fgh                                                   //完成输入后按Ctrl+d退出
Afdsf ag ;agrsdfh Fgjksdghfgj Adfghfghj sdfh Fgh  
[root@localhost yy]#

执行指令“fmt”将从标准输入设备读取数据,然后进行编排。

4.4.5 fold指令:限制文件列宽
能对文件的列宽进行限制

fold [-可选参数] [文件]

fold指令可用来调整文件的列宽,读取指定文件的内容,如果文件中某行的列数超出限定的列数,将超出部分截断作为新的一行在该行后输出,要求新增加的行也满足限定列宽。fold指令也可从标准输入中读取数据,然后将结果输出到标准输出。fold指令的功能和fmt指令有类似之处,学习的时候要注意区别。

可选参数及其说明如下:
screenshot

范例434 调整文件的列宽。

[root@localhost yy]# fold -w 3                    //从标准输入中读入文件
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaaaaa                                                  //“Ctrl+d”
a
aa
aaa
aaa
a
aaa
aa
aaa
aaa
aaa
aaa
a
[root@localhost yy]#

执行指令“fold -w 3”从标准输入设备中读取数据,然后将结果输出到标准输出设备,如本例所示。

范例435 调整文件的列宽,同时保存调整后的文件。

[root@localhost yy]#ls
a1.txt sr yy
[root@localhost yy]# fold -w 3 >aa.txt                //从标准输入中读入文件
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaaaaa                                                          //“Ctrl+d”
[root@localhost yy]#ls
a1.txt aa.txt sr yy
[root@localhost yy]#cat aa.txt
a
aa
aaa
aaa
a
aaa
aa
aaa
aaa
aaa
aaa
a
[root@localhost yy]#

执行指令“fold -w 3 > aa.txt”从标准输入设备中读取数据,然后将结果输出到指定文件aa.txt中,如本例所示。

4.4.6 grep指令 :匹配搜索
掌握匹配搜索的方法

grep [-可选参数] 查找模式 [文件或者目录]

grep指令用于查找文件中符合指定模式的行,并将其输出到标准输出设备。如果指令中未指定文件名,将会从标准输入中读取数据。

【ACTION的值】

read:将目录视为一般文档文件进行处理,预设的ACTION的值为read。
skip:忽略目录不处理。
recurse:相当于-r参数,递归处理目录下的文件。
范例436 在指定文件中查找含有匹配字符串的行。

[root@localhost yy]# cat sr                        //显示文件sr的内容
asd fgjkjl
asdsfgfhgjk
adsfghjklk
asfghk

q
sjkdfgdjkfg
sdjkdfhdjkfg
jsdhfklh
hgskjg
[root@localhost yy]# grep as sr                        //在指定文件sr查找匹配字符串“as”
asd fgjkjl
asdsfgfhgjk
asfghk
[root@localhost yy]# egrep as sr                        //在指定文件sr查找匹配字符串“as”
asd fgjkjl
asdsfgfhgjk
asfghk
[root@localhost yy]# fgrep as sr                        //在指定文件sr查找匹配字符串“as”
asd fgjkjl
asdsfgfhgjk
asfghk
[root@localhost yy]#

执行指令“grep as sr”,“egrep as sr”和“fgrep as sr”查找指定文件中含有字符串“as”的行,并将查找到的行输出到标准输出,输出结果如上所示。我们知道egrep、fgrep和grep指令都是用于实现指定模式搜索的指令,其中grep指令一次只搜索一个指定的模式,egrep是扩展的grep指令,能检索正则表达式,而fgrep指令则是快速grep。

范例437 在多个指定文件中查找含有匹配字符串的行。

[root@localhost yy]# cat a2                    //显示文件a2的内容
aaaaaaaaaaaa
aaaaaaaaaaaa
aaaaaaaaaaaa
aaaaaaaaaaaa
fine thank you and you
[root@localhost yy]# grep a a2 sr                 //在指定文件a2和文件sr中查找匹配字符串“as”
a2:aaaaaaaaaaaa
a2:aaaaaaaaaaaa
a2:aaaaaaaaaaaa
a2:aaaaaaaaaaaa
a2:fine thank you and you
sr:asd fgjkjl
sr:asdsfgfhgjk
sr:adsfghjklk
sr:asfghk
[root@localhost yy]#

执行指令“grep a a2 sr”查找指定文件a2和文件sr中含有字符“a”的行,并将查找到的行输出到标准输出。如上所示。

范例438 查找含有匹配字符串的行,同时显示其后两行的内容。

[root@localhost yy]# grep –A 2 ads sr      //查找匹配字符串“ads”同时显示匹配行及其后两行的内容
adsfghjklk
asfghk

[root@localhost yy]#

执行指令“grep –A 2 ads sr”查找指定文件sr中含有字符串“ads”的行,并将查找到的行以及该行的后两行输出到标准输出。

范例439 按照范本文件中给出的查找模式进行查找。

[root@localhost yy]# cat a3                //显示范本文件a3的内容
asd
ads
fg
sf
[root@localhost yy]# grep –f a3 sr          //查找符合范本文件中查找模式
asd fgjkjl 
asdsfgfhgjk
adsfghjklk
asfghk
sjkdfgdjkfg
sdjkdfhdjkfg
[root@localhost yy]#

执行指令“grep –f a3 sr”查找指定文件sr中含有范本文件中指定查找模式的行,并将查找到的行输出到标准输出。

范例440 列出目录下所有符合查找模式的文件名。

[root@localhost yy]# grep –l as *        //列出所有符合查找模式的文件
a3
ar.txt
df.txt
h
h1.txt
ls.man.txt
sr
sr.txt
tt
ypbind
[root@localhost yy]#

执行指令“grep –l as *”l列出所有符合查找模式的文件名。

范例441 反转显示所有不满足查找模式的行。

[root@localhost yy]# grep -v asd sr        //列出文件sr中不含“asd”的行
adsfghjklk
asfghk

q
sjkdfgdjkfg
sdjkdfhdjkfg
jsdhfklh
hgskjg
[root@localhost yy]#

执行指令“grep -v asd sr”显示指定文件sr中不符合查找模式“asd”的所有行。

范例442 将查找模式看作word的形式对文件进行索引。

[root@localhost yy]# grep -w asd sr        //将字符串“asd”看作word形式
asd fgjkjl
[root@localhost yy]#

执行指令“grep -w asd sr” 将查找模式看作word的形式对文件进行索引。

4.4.7 ispell指令:拼字检查程序
学会使用ispell指令对文件进行拼写检查

ispell [-可选参数] [文件]

ispell指令使用/usr/lib/ispell/english.hash下的预设字典来检查指定的文件。如果检查到文件中存在预设字典里没有的词汇,会建议你使用的词汇或让你将新的词汇加入个人字典。

范例443 检查指定文件。

[root@localhost yy]# cat a11        //显示文件a11的内容
Hello everybody
Hello everyone
How are you
Linux
Red hat Linux
[root@localhost yy]# ispell a11        //检查文件a11

输入指令“ispell a2”回车将显示如下内容。

Hello everybody
Hello everyone
How are you
Linux
Red hat Linux




1)Linux                                       6)Linuxes
2)lynx                                        7)lix
3)Linus                                       8)linkup
4)links                                       9)Linc‘s
5)Linc                                        0)Link
i)Ignore                                      I)Ignore all
r)Replace                                     R)Replace all
a) Add                                         l) Add Lower
b) Abort                                       x)Exit

?

如果输入数字1,将文件中第四行中的Linux替换为Linux。这时的显示如下:

Hello everybody
Hello everyone
How are you
Linux
Red hat Linux




1)Linux                                       6)Linuxes
2)lynx                                        7)lix
3)Linus                                       8)linkup
4)links                                       9)Linc‘s
5)Linc                                        0)Link
i)Ignore                                      I)Ignore all
r)Replace                                     R)Replace all
a) Add                                         l) Add Lower
b) Abort                                       x)Exit

?

如果不想替换可按x键直接退出。

[root@localhost yy]# cat a11        //显示文件a11的内容
Hello everybody
Hello everyone
How are you
Linux
Red hat Linux
[root@localhost yy]#

在执行完成后查看文件a11的内容可发现文件的拼写已更改。

本例使用指令“spell -d american iptables.sh”指定词典为美语词典进行检查。

4.4.8 join指令:连接两个指定的文件
会运用join指令连接两个不同文件

join [-可选参数] 文件1 文件2

join指令可以找出文件中指定栏位相同的行,然后连接两个指定的文件,输出到标准输出设备。

范例444 连接两个文件中栏位相同的行。

[root@localhost yy]# cat b1            //显示文件b1的信息
1 b1 1024
2 b1 1133
3 b1 0981
4 b1 1321
5 b1 1987
6 b1 1877
[root@localhost yy]# cat b2            //显示文件b2的信息
1 b2 0025
2 b2 0017
3 b2 0119
4 b2 0226
5 b2 0068
7 b2 0001
[root@localhost yy]# join b1 b2        //连接两个文件
1 b1 1024 b2 0025
2 b1 1133 b2 0017
3 b1 0981 b2 0119
4 b1 1321 b2 0226
5 b1 1987 b2 0068
[root@localhost yy]#

执行指令“join b1 b2”,将文件b1和b2中栏位相同的部分连接起来,连接的顺序与指令中文件名的先后有关,一般情况下空格作为栏位的区分。

范例445 连接两个文件中栏位相同的行,同时显示选中文件中不相同的行。

[root@localhost yy]# cat b1            //显示文件b1的信息
1 b1 1024 1
2 b1 1133 2
3 b1 0981 3
4 b1 1321 4
5 b1 1987 5
6 b1 1877 6
[root@localhost yy]# cat b2            //显示文件b2的信息
1 b2 0025 1
2 b2 0017 2
3 b2 0119 3
4 b2 0226 4
5 b2 0068 5
7 b2 0001 7
[root@localhost yy]# join –a1 b1 b2        //连接两个文件b1和b2,同时显示文件b1中的栏位不同的行
1 b1 1024 1 b2 0025 1
2 b1 1133 2 b2 0017 2
3 b1 0981 3 b2 0119 3
4 b1 1321 4 b2 0226 4
5 b1 1987 5 b2 0068 5
6 b1 1877 6
[root@localhost yy]# join –a2 b1 b2        //连接两个文件b1和b2,同时显示文件b2中的栏位不同的行
1 b1 1024 1 b2 0025 1
2 b1 1133 2 b2 0017 2
3 b1 0981 3 b2 0119 3
4 b1 1321 4 b2 0226 4
5 b1 1987 5 b2 0068 5
7 b2 0001 7
[root@localhost yy]#

执行指令“join –a num b1 b2”,将文件b1和b2中栏位相同的部分连接起来,同时显示num指定的文件里栏位不同的行。num取得的数字1或2与文件在指令中的顺序是相关的,1代表前者,2代表后者。

范例446 连接指定栏位相同的文件。

[root@localhost yy]# cat b1            //显示文件b1的信息
1 b1 1024 1
2 b1 1133 2
3 b1 0981 3
4 b1 1321 4
5 b1 1987 5
6 b1 1877 6
[root@localhost yy]# cat b2            //显示文件b2的信息
1 b2 0025 1
2 b2 0017 2
3 b2 0119 3
4 b2 0226 4
5 b2 0068 5
7 b2 0001 7
[root@localhost yy]# join –1 4 b1 b2        //将文件b1的指定栏位与b2中的预设相比较
1 1 b1 1024 b2 0025 1
2 2 b1 1133 b2 0017 2
3 3 b1 0981 b2 0119 3
4 4 b1 1321 b2 0226 4
5 5 b1 1987 b2 0068 5
[root@localhost yy]# join –2 4 b1 b2        //将文件b2的指定栏位与b1中的预设相比较
1 b1 1024 1 b2 0025
2 b1 1133 2 b2 0017
3 b1 0981 3 b2 0119
4 b1 1321 4 b2 0226
5 b1 1987 5 b2 0068
[root@localhost yy]# join –j 4 b1 b2        //将文件b1与b2中的指定栏位相比较
1 b1 1024 1 b2 0025
2 b1 1133 2 b2 0017
3 b1 0981 3 b2 0119
4 b1 1321 4 b2 0226
5 b1 1987 5 b2 0068
[root@localhost yy]#

执行指令“join –1/2 栏位 b1 b2”,当指令中的参数为–1时指定的是文件1的栏位,文件2是预设栏位;当指令中的参数为–2时指定的栏位是文件2的栏位,文件1是预设栏位。这里的参数–1/2的意思与上面提到的num代表的意义相同。执行指令“join –l 栏位 b1 b2”同时指定了文件1和文件2的比较栏位。

4.4.9 look指令:单字查询
掌握look指令进行英文单字查询的方法

look [-可选参数] 字首字符串 [文件]

使用look指令进行英文单字查询时,根据输入的字首字符串,会输出所有符合该条件的单字。
可选参数及其说明如下:
screenshot

范例447 查找以word作为起始字符串的单字。

[root@localhost ~]# look word        //开始查找
Word
word
wordable
wordably
wordage
wordages
word-beat
word-blind
word-book
wordbook
wordbooks
word-bound
wordbreak
word-breaking
wordbuilding
------------------------------------------------------------
------------------------------------------------------------
wordstar
wordster
word-stock
Wordsworth
Wordsworthian
wordsworthian
wordsworthianism
word-wounded
wordy
[root@localhost ~]#

执行指令“look word”后,在标准输出设备上输出所有预设字典上含有的以指定字符串作为字首的单字。

4.4.10 sort指令:将文本文件内容加以排序
能使用sort指令对文本文件内容进行排序

sort [-可选参数] [文件]

利用sort指令可以对指定的文本文件的内容一行为单位进行排序。
范例448 对文件的内容进行排序。

[root@localhost yy]# cat b3                //显示文件b3的信息
9 b1 1024 0
6 b1 1133 1
3 b1 0981 2
5 b1 1321 3
7 b1 1987 4
2 b1 1877 5
1 b2 0025 6
4 b2 0017 7
8 b2 0119 8
0 b2 0226 9
[root@localhost yy]# sort b3            //对文件b3进行排序
0 b2 0226 9
1 b2 0025 6
2 b1 1877 5
3 b1 0981 2
4 b2 0017 7
5 b1 1321 3
6 b1 1133 1
7 b1 1987 4
8 b2 0119 8
9 b1 1024 0
[root@localhost yy]#

执行指令“sort b3”对文件b3进行排序,然后输出到标准输出。

范例449 对文件的内容进行逆排序。

[root@localhost yy]# cat b1                //显示文件b1的信息
1 b1 1024
2 b1 1133
3 b1 0981
4 b1 1321
5 b1 1987
6 b1 1877
[root@localhost yy]# sort –r b1            //对文件b1的内容进行逆排序
6 b1 1877
5 b1 1987
4 b1 1321
3 b1 0981
2 b1 1133
1 b1 1024
[root@localhost yy]#

执行指令“sort –r b1”对文件b1进行逆排序,然后输出到标准输出。

4.4.11 spell指令:拼字检查程序
掌握使用spell指令进行拼字检查的方法,比较spell指令和ispell指令的使用方法

spell

spell指令可检查从标准输入设备输入的字符串有否拼写错误,如果检查到拼写错误,在输入结束后显示有拼写错误的字符。

范例450 检查输入的字符串。

[root@localhost ~]# spell                    //检查字符串
word
asddd
quit
sadf
save
ffg
exit                                           //完成从标准输入设备输入字符串
asddd
sadf
ffg
[root@localhost ~]#

执行指令spell检查从标准输入设备输入的字符串的拼写错误,在结束输入的同时将拼写错误的字符串在屏幕上输出。

4.4.12 tr指令:转换文件中的字符
能使用tr指令转换文件中的字符

tr [-可选参数] 字符串1 [字符串2]

tr指令将标准输入输入的字符串转换为指定的字符串,然后输出到标准输出设备。

tr指令从标准输入设备读取数据,经过字符串转译后,输出到标准输出设备。

可选参数及其说明如下:
screenshot

范例451 字符串转换。

[root@localhost yy]# cat b1 | tr b1 na                //将字符串b1转换为字符串na
1 na 1024
2 na 1133
3 na 0981
4 na 1321
5 na 1987
6 na 1877
[root@localhost yy]# cat b1 | tr b1 name                //将字符串b1转换为字符串na
1 na 1024
2 na 1133
3 na 0981
4 na 1321
5 na 1987
6 na 1877
[root@localhost yy]#

执行指令“cat b1 | tr b1 na”将文件b1中的字符串b1转换为字符串na。执行指令“cat b1 | tr b1 name”文件b1中的字符串b1转换为字符串na而非字符串2中指定的字符串name。虽然两个指令中指定的字符串2长度不同,但输出到标准输出的结果相同。

范例452 删除所有输入文本中与字符串1相匹配的字符。

[root@localhost yy]# cat b1 | tr –d b1                //删除文本中与字符串b1相匹配的字符

 024
2  33
3  098
4  32
5  987
6  877
[root@localhost yy]#

执行指令“cat b1 | tr –d b1” 删除文本中与字符串b1相匹配的字符,并输出到标准输出。

范例453 大小写字母转换。

[root@localhost yy]# cat a1
Hello everybody 1
Hello everyone 2
How are you 3
Fine thank you and you 4
I fine too 5
Linux 6
Red hat Linux 7
[root@localhost yy]# cat a1 | tr a-y A-Y            //大小写字母转换
HELLO EVERYBODY 1
HELLO EVERYONE 2
HOW ARE YOU 3
FINE THANK YOU AND YOU 4
I FINE TOO 5
LINUX 6
RED HAT LINUX 7
[root@localhost yy]#

执行指令“cat a1 | tr a-y A-Y” 将文本中的字符转换为大写字母,并输出到标准输出。

4.4.13 uniq指令:检查文件中重复出现的行
掌握检查及删除文本文件中重复出现的行

uniq [-可选参数] [输入文件[输出文件] ]

uniq指令用来检查文件中重复出现的行,并将重复的部分删除。

可选参数及其说明如下:
screenshot

范例454 显示文件中每行重复出现的次数。

[root@localhost yy]# cat ar                //显示文件内容
Hello everybody
Hello everyone
How are you
Fine thank you and you
I fine too
Linux
Linux
Linux
Red hat Linux
[root@localhost yy]# uniq –c ar            //显示每行重复出现次数
        1 Hello everybody 
        1 Hello everyone
        1 How are you
        1 Fine thank you and you
        1 I fine too
        3 Linux
        1 Red hat Linux
[root@localhost yy]#

执行指令“uniq –c ar”显示文件ar中每行重复出现的次数。

范例455 不显示文件中的重复行。

[root@localhost yy]# cat ar                //显示文件内容
Hello everybody
Hello everyone
How are you
Fine thank you and you
I fine too
Linux
Linux
Linux
Red hat Linux
[root@localhost yy]# uniq ar            //不显示文件中的重复行
Hello everybody
Hello everyone
How are you
Fine thank you and you
I fine too
Linux
Red hat Linux
[root@localhost yy]#

执行指令“uniq ar” 不显示文件中的重复行。

范例456 显示时忽略指定行。

[root@localhost yy]# cat ar                //显示文件内容
Hello everybody
Hello everyone
How are you
Fine thank you and you
I fine too
Linux
Linux
Linux
Red hat Linux
[root@localhost yy]# uniq –f2 ar        //显示时忽略指定行
Hello everybody
How are you
Fine thank you and you
I fine too
Linux
Linux
Linux
Red hat Linux
[root@localhost yy]# uniq –f4 ar        //显示时忽略指定行
Hello everybody
Hello everyone
How are you
I fine too
Linux
Linux
Linux
Red hat Linux
[root@localhost yy]#

执行指令“uniq –f2 ar”和指令“uniq –f4 ar” 不显示指令中的指定行。

相关文章
|
4天前
|
Unix Linux Windows
Linux的学习之路:3、基础指令(2)
Linux的学习之路:3、基础指令(2)
28 0
|
3天前
|
算法 Linux
工作中常用的一些Linux指令,简单易记还实用(三)
工作中,离不开Linux系统,很多刚步入职场的小白,往往对于Linux操作系统的使用都显得生疏,最主要的就是对一些常用的指令记忆不熟练,下面就罗列一些使用度比较高的一些Linux指令,一起来巩固学习一下。这一部分的指令就稍微偏一点了,是接着上一篇博客后面写的,感兴趣的朋友可以回头看看前一篇,再回来看这个。
18 1
|
3天前
|
Linux Shell
工作中常用的一些Linux指令,简单易记还实用
工作中常用的一些Linux指令,简单易记还实用
10 2
|
9天前
|
安全 Linux
Linux基本指令(下)——“Linux”
Linux基本指令(下)——“Linux”
|
10天前
|
人工智能 Unix Linux
Linux基本指令
Linux基本指令
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
3天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)