【问题标题】:How can I delete words from each line of a file using sed in shell script? [duplicate]如何在 shell 脚本中使用 sed 从文件的每一行中删除单词? [复制]
【发布时间】: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',我不知道如何使用。

标签: linux bash shell


【解决方案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”,但无论如何,谢谢,这很好用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 2015-08-01
  • 1970-01-01
相关资源
最近更新 更多