管理文件和目录7(Ubuntu)
  kIM7GUNpnV3x 2023年11月13日 21 0

一:处理两个文件中的数据

  这个命令就是join命令时会读取指定的两个文件,并将具有公共字段的行连接起来。

 注意:在进行这一步前文件要经过排序。

  格式: join [选项] 文件名1 文件名2

  join命令在处理两个相关数据的文件时常有用,选项看不懂的搭配操作实践实践就知道了。

  常用的选项如下表所示:

选项

说明

-a

除了正常的显示内容外,还会显示文件中没有相同的数据的行。有两个文件编号1和2(数字1表示连接文件1中的内容,数字2表示连接文件2中的内容)

-i

忽略大小写

-j

指定要串联的字段

-o

按照指定的格式显示结果

文件fiel1和fiel2中有相同的数据是每行前面的行号,现在把具有相同的行号的行连接起来,如果需要指定连接的是第2列文字。join -j 2 fiel3 fiel4表示指定第2列为连接字段,如下图所示:

  

                                                          管理文件和目录7(Ubuntu)_字符串

上面这种连接不会把文件fiel3中的第4行一起串联起类,加上-a选项之后就可以了。join -j 2 -a 2 fiel3 fiel4会显示文件fiel3中无法连接的字段。

二:文本处理工具

  这个命令就是grep命令,这个命令是一个非常强大的文本处理工具,grep命令也具有搜索功能,可以在文件中或标准输出上搜索指定的字符串。

 格式:grep [选项] 字符串 文件名 

 字符串指的是需要查找的字符串,grep命令可以根据指定的选项过滤不同的文件内容,常用选项如下表所示:

选项

说明

-n

在搜索结果中显示行号

-l

列出带有匹配行的文件名

-v

列出没有匹配内容的行

-i

执行不区分大小的的搜索

如果我要搜索文件fiel1中的带有study的行,可以指定-n这个选项,这样搜索的结果就包括行号和带有study的行。这样搜索是区分大小写的如果不区分大小写,可以再指定-i选项,如下图所示:

                                                          管理文件和目录7(Ubuntu)_正则表达式_02

                                                          管理文件和目录7(Ubuntu)_字符串_03

  grep除了指定选项,还可以通过正则表达式搜索指定的字符串。简单来说这个正则表达式就是处理字符串的方法,只不过它有自己独特的检索方式。一个正则表达式既可以是一些纯文本的文字,也可以是用来产生模式的特殊字符,正则表达式里常用的字符如下表所示;

字符

说明

\

忽略正则表达式里的特殊字符的原本含义

.

匹配任何字符

*

匹配前一个字符0此或者更多次

^

匹配正则表达式的开始行

$

匹配正则表达式的末尾行

?

指定前一个字符出现0次或多次

+

指定前一个字符·重复1次或者多次

[]

匹配[]中的字符

 上面可以看出+、等符号已经不是它们原本的含义了,如果想要恢复他们原本的含义就要在它们之前添加反斜杠\,比如\、\+。 

  下面使用·正则表达式和grep命令搭配在一起实现搜索功能的用法。grep ‘^s.*n $ fiel1 表示搜索文件fiel1中中以s开头以y结尾的字符串,这种方式搜所的结果会很准确。相反grep '^s.\+$ fiel1 表示搜索文件中以c开头以#结尾的字符串,如下图所示:

                                                          管理文件和目录7(Ubuntu)_字符串_04

                                                          管理文件和目录7(Ubuntu)_搜索_05

如果单独使用.的功能,它会显示除空行外的所有行,演示如下图所示:

                                                          管理文件和目录7(Ubuntu)_正则表达式_06

                                                          管理文件和目录7(Ubuntu)_正则表达式_07

如果想搜索带有.的行,可以在上面的基础上加\。

正则表达式通过不同的字符之间的排列组合可以实现搜索、替换、删除等不同的功能。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  uvM09mQNI0hF   2023年11月19日   26   0   0 sedshell字符串
  vxoexqgjyiCS   2023年11月19日   18   0   0 linux字符串最大匹配
  vxoexqgjyiCS   2023年11月19日   23   0   0 服务器vim字符串
kIM7GUNpnV3x