linux批处理中删除字符串,Linux常用命令之文本处理

Linux常用命令之文本处理

Linux常用命令之文本处理

uniq [选项] 文件

说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。

该命令各选项含义如下:、

– c 显示输出中,在每行行首加上本行在文件中出现的`次数。它可取代- u和- d选项。

– d 只显示重复行。

– u 只显示文件中不重复的各行。

– n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。

+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。

– f n 与- n相同,这里n是字段数。

– s n 与+n相同,这里n是字符数。

接下来通过实践实例说明:

代码如下:

[root@stu100 ~]# cat test

boy took bat home

boy took bat home

girl took bat home

boy took bat home

boy took bat home

dog brought hat home

dog brought hat home

dog brought hat home

看test文件的内容

代码如下:

[root@stu100 ~]# uniq test

boy took bat home

girl took bat home

boy took bat home

dog brought hat home

uniq命令不加任何参数,仅显示连续重复的行一次

代码如下:

[root@stu100 ~]# uniq -c test

2 boy took bat home

1 girl took bat home

2 boy took bat home

3 dog brought hat home

1

-c 参数显示文件中每行连续出现的次数。

代码如下:

[root@stu100 ~]# cat test |sort | uniq -c

1

4 boy took bat home

3 dog brought hat home

1 girl took bat home

排序后再显示

代码如下:

[root@stu100 ~]# uniq -d test

boy took bat home

boy took bat home

dog brought hat home

-d选项仅显示文件中连续重复出现的行。

代码如下:

[root@stu100 ~]# uniq -u test

girl took bat home

-u选项显示文件中没有连续出现的行。

代码如下:

[root@stu100 ~]# uniq -f 2 -s 2 test

boy took bat home

忽略每行的前2个字段,忽略第二 个空白字符和第三个字段的首字符,结果at home

代码如下:

[root@stu100 ~]# uniq -f 1 test

boy took bat home

dog brought hat home

忽 略每行的第一个字段,这样boy ,girl开头的行看起来是连续重复的行。

代码如下:

[root@stu100 ~]# uniq -D test

boy took bat home

boy took bat home

boy took bat home

boy took bat home

dog brought hat home

dog brought hat home

dog brought hat home

显示所有重复的行,每个重复的行都显示

当你有一个包含相同条目的雇员(employee)的文件,你可以以如下方式来删除相同的条目

代码如下:

$ sort namesd.txt | uniq

$ sort –u namesd.txt

如果你想知道有多少行是相同的,可以像下面这个做。以下例子中的第一列显示该行的重复数量。在本例中,以Alex和Emma开头的行,在文件中有两个重复行。

代码如下:

$ sort namesd.txt | uniq –c

2 Alex Jason:200:Sales

2 Emma Thomas:100:Marketing

1 Madison Randy:300:Product Development

1 Nisha Singh:500:Sales

1 Sanjay Gupta:400:Support

3. 以下命令仅仅列出了相同的条目

代码如下:

$ sort namesd.txt | uniq –cd

2 Alex Jason:200:Sales

2 Emma Thomas:100:Marketing

【Linux常用命令之文本处理】相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: sed(Stream Editor)是一个非交互式的文本编辑器,它可以对文本进转换和替换。在Linux系统,sed命令是一个非常强大的文本操作工具,它可以用来进文本处理、替换、删除、过滤等操作。 下面是sed命令的一些常用选项和参数: - -n:只输出修改过的。 - -e:指定要执的sed命令。 - -i:直接修改文件的内容,而不是输出到终端。 - -f:从指定的文件读取sed命令。 - s:替换操作,用于查找并替换指定的字符串。 - d:删除操作,删除指定的或匹配的字符串。 - p:打印操作,打印匹配的。 下面是一些常用的sed命令示例: 1. 替换文件所有的hello为world,并打印输出到终端。 ``` sed 's/hello/world/g' file.txt ``` 2. 替换文件第5hello为world,并直接修改文件。 ``` sed -i '5s/hello/world/' file.txt ``` 3. 删除文件所有包含hello,并打印输出到终端。 ``` sed '/hello/d' file.txt ``` 4. 在文件开头添加一内容,并直接修改文件。 ``` sed -i '1i\This is a new line.' file.txt ``` 5. 从文件读取sed命令,并执命令。 ``` sed -f commands.sed file.txt ``` 以上是一些常用的sed命令示例,当然sed命令还有很多其他的选项和用法,可以通过man sed命令来查看更多详细的信息。 ### 回答2: sed(stream editor)是一种强大的文本处理工具,它在linux系统被广泛使用。sed命令可以对文本进编辑、替换、删除等操作。以下是对sed命令的详细解释: 1.基本用法:sed命令通常结合正则表达式来操作文本。它可以从标准输入读取文本,并将修改后的结果输出到标准输出或指定的文件。 2.编辑操作:通过sed命令,可以实现文本的增加、修改和删除等编辑操作。例如,我们可以使用sed命令将某个模式替换为指定的字符串,或者使用sed命令在指定位置插入新的文本。 3.替换操作:sed命令的替换操作是其最常用的功能之一。它使用正则表达式来匹配指定的模式,并将其替换为指定的字符串。例如,可以使用sed命令将文本所有的"apple"替换为"orange"。 4.删除操作:sed命令还可以删除匹配某个模式的文本。例如,可以使用sed命令删除文件所有包含指定关键字的。 5.地址定位:sed命令可以使用地址定位,通过指定号或正则表达式来定位要操作的文本。例如,我们可以使用sed命令只对文件的特定操作,而不影响其他。 6.批处理:sed命令可以批量处理多个文件。可以使用-w选项将修改后的结果保存到原文件,也可以使用-i选项直接修改原文件。 总之,sed命令非常灵活和强大,可以在文本处理任务发挥重要作用。通过灵活运用sed命令的编辑、替换和删除等功能,我们可以快速有效地处理和修改大量的文本数据。 ### 回答3: sed命令是一种在Linux系统非常常用的文本处理工具。它可以用来编辑、替换、删除以及格式化文本。 sed的基本语法是: ``` sed [选项] '[动作]' 文件名 ``` 其,选项可以用来指定sed的为,比如-i用来直接修改文件内容;动作是指要执的操作,如s表示替换操作,d表示删除操作。文件名是要处理的文件。 sed最常用的操作是替换操作,语法如下: ``` sed 's/要替换的内容/替换内容/标志' 文件名 ``` 其,要替换的内容可以是字符串或正则表达式,替换内容是要替换成的内容,标志可以省略,标志可以是g表示全局替换,可以是数字表示替换第几个匹配的内容。 sed还可以通过正则表达式来匹配文本的字符,然后进相应的操作。比如: ``` sed '/^hello/d' 文件名 ``` 这条命令会删除文件hello开头的。 除了替换和删除操作,sed还支持插入、追加、输出等操作。插入操作可以在指定前插入文本,追加操作可以在指定后追加文本,输出操作可以将处理后的结果输出到终端或指定文件。 总之,sed命令是一种强大的文本处理工具,通过简单的语法可以完成多种复杂的文本操作。在处理大量文本数据时,使用sed命令可以提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值