美文网首页我爱编程程序员
Linux中的管道命令(三)

Linux中的管道命令(三)

作者: 学习编程王同学 | 来源:发表于2018-07-10 12:30 被阅读1次

tr

tr命令将文本中的一个字符替换为另一个字符(除非挤压字符),它不直接读取文件,而是从标准输入中读取信息,它的语法如下:

tr [-cds] [set1 [set2]]

tr命令将字符集set1中的字符替换为字符集set2中的字符。

下面是data文件中的内容:

$ cat data
abc
DEF
GHi
abC
12345
67890

下面的命令将data文件中a替换为X

$ tr a X < data
Xbc
DEF
GHi
XbC
12345
67890

也可以指定两个字符集,下面的命令将data文件中的a替换为Ab替换为Bc替换为C

$ tr abc ABC < data
ABC
DEF
GHi
ABC
12345
67890

tr命令常用的三个命令参数是:

  • -c:匹配所有不在第一个字符集中的字符。
  • -d:删除匹配的字符。
  • -s:挤压字符。

先来看-c选项,它匹配所有不在第一个字符集中的字符,比如$ tr -c '\n' X < datadata文件中所有不是\n(换行符)的字符替换为X

$ tr -c '\n' X < data
XXX
XXX
XXX
XXX
XXXXX
XXXXX

-d选项删除匹配的字符,下面的命令删除输入中所有小写字母字符:

$ tr -d [:lower:] < data

DEF
GH
C
12345
67890

在第一个字符集比第二个字符集字符多时候,可以挤压字符,下面的命令将连续的多个小写字符(一个或多个)替换为一个字符x

$ tr -s [:lower:] x < data
x
DEF
GHx
xC
12345
67890

sed

sed不是一个简单的程序,它是一个与shell无关的语言解释器,但这里只介绍它的简单用法。

sed程序从头到尾处理所有数据:

  1. 从输入流中读取一行;
  2. 对改行执行指定的指令;
  3. 将更改写入输出流中。

data文件内容如下:

$ cat data
abc
DEF
GHi
abC
12345
67890

下面的命令将data文件中第一行的ab替换为CD

$ sed '1s/ab/CD/g' data
CDc
DEF
GHi
abC
12345
67890

如果想要将更改保存到原文件,需要使用-i选项,下面的命令将更改保存到原文件(data)中:

$ sed -i '1s/ab/CD/g' data

如果要连续写多条指令,可以使用-e选项:

$ sed -e '1s/ab/AB/g' \
> -e '4s/C/c/g' data
ABc
DEF
GHi
abc
12345
67890

相关文章

  • Linux中的管道命令(三)

    tr tr命令将文本中的一个字符替换为另一个字符(除非挤压字符),它不直接读取文件,而是从标准输入中读取信息,它的...

  • Linux管道命令

    Linux系统中管道命令是linux系统的一个强大之处。 管道命令操作符是:”|”,它只能处理经由前面一个指令传出...

  • Linux中的管道和echo命令

    在Linux中,管道是十分重要的概念,Linux允许将一个命令的输出(通过管道)作为另一个命令的输入。熟练使用管道...

  • | 管道命令

    管道命令在Linux中十分有用,管道命令操作符是“|”,它能将经由前一个命令输出的标准输出,作为管道后一个命令的标...

  • 管道命令

    参考linux shell 管道命令(pipe)使用及与shell重定向区别、管道命令 管道命令操作符是:”|”,...

  • Linux的管道命令

    Linux的管道命令 管道命令(Pipe) 双向重定向 字符转换命令:tr,col,join,paste,expand

  • linux三剑客与管道

    一:什么是管道? linux提供管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右面命令的输入 什么...

  • 16. Linux 管道符( ‘|’ )

    利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意...

  • 2019-04-10tar压缩命令回顾、date修改时间命令、软

    压缩命令tar回顾 | 管道符号 把管道前面命令的结果 通过管道传递给后面的命令 Linux下面的对比工具(比较两...

  • linux基本操作

    cd 目录: 查询: 管道: 简单来说, Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入, 像 ...

网友评论

    本文标题:Linux中的管道命令(三)

    本文链接:https://www.haomeiwen.com/subject/ngyfpftx.html