如何在 shell 脚本中使用 sed 从文件的每一行中删除单词? [复制]

Posted

技术标签:

【中文标题】如何在 shell 脚本中使用 sed 从文件的每一行中删除单词? [复制]【英文标题】:How can I delete words from each line of a file using sed in shell script? [duplicate] 【发布时间】:2017-09-05 20:52:21 【问题描述】:

例如我要删除每行的第二个和第四个单词

sample.txt 之前:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Nulla elit dui, fermentum sed quam sed, semper auctor elit.

sample.txt 之后:

Lorem dolor amet, consectetur adipiscing elit.
Nulla dui, sed quam sed, semper auctor elit.

【问题讨论】:

我用'cut'解决,但我必须'sed',我不知道如何使用。 【参考方案1】:

类似:

sed 's/\(\S\+\s\+\)\S\+\s\+\(\S\+\s\+\)\S\+\s\+\(.*\)/\1\2\3/g'

如果必须使用 sed,应该可以。如果一行中的单词少于 4 个,则此脚本不起作用。

【讨论】:

谢谢,这就是我要找的。我可以用“cut”解决,但不幸的是我必须使用“sed”。【参考方案2】:

你可以用“cut”来做到这一点

cut -d ' ' -f1,3,5- MY_FILE

-d 将分隔符设置为空格,-f 选择字段 1、3 和 5+。

【讨论】:

我必须使用“sed”,但无论如何,谢谢,这很好用。

以上是关于如何在 shell 脚本中使用 sed 从文件的每一行中删除单词? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sed 在 shell 脚本中添加单引号

在 shell 脚本中使用 sed 命令 grep 文件夹

Shell脚本------sed编辑器

如何将一shell脚本中的每一步命令执行结果输出到指定日志文件中

Shell脚本学习之sed详解

shell脚本sed命令行编辑器