linux中sed命令删除单词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中sed命令删除单词相关的知识,希望对你有一定的参考价值。

linux中用sed命令删除每行的第一个单词、最后一个单词怎么做,急等!!!

参考技术A #cat a
one two three four five six seven eight nine ten

#sed -nr 's/([a-Z]+) (.*) ([a-Z]+)/\2/p' a
two three four five six seven eight nine

别人写的:sed -r 's/(\w+ )//;T;s/ +\w+$//g'
参考技术B 你每一行的格式是否一样 如分隔符 分成多少列 如果一样的话 可以做的 参考技术C sed -e 's/^.*[ \t]//g' -e 's/[ \t].*$//g' filename 参考技术D sed 's/\w\+ \(.*\) \w\+/\1/g' filename 第5个回答  2012-03-30 1213

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

【中文标题】如何在 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”,但无论如何,谢谢,这很好用。

以上是关于linux中sed命令删除单词的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之sed-删除匹配行

每日一道Linux命令

linux sed命令

sed删除怎么生效

Linux的sed命令

Linux sed 删除行命令常见使用详解