Sed:如果其中不包含chaine,则替换字符串[重复]

Posted

技术标签:

【中文标题】Sed:如果其中不包含chaine,则替换字符串[重复]【英文标题】:Sed : replace string if a chaine is not included in it [duplicate] 【发布时间】:2016-07-07 23:08:05 【问题描述】:

我有一个变量“header”,如果里面有chaine“last”我什么都不想做,但是如果chain“last”不在我的变量里面,我想删除整个变量 (header = "")

我一直在寻找这样的东西,但显然它不会这样工作。

echo $header | sed "/!'last'//"

如何用 sed 求反?有人可以帮帮我吗?

谢谢

【问题讨论】:

【参考方案1】:
header=`echo $header |  sed '/last/d'`

header=`echo $header |  sed -e 's/.*last.*//g'`

【讨论】:

【参考方案2】:

awk

header=$(echo $header | awk '!/last/')

【讨论】:

以上是关于Sed:如果其中不包含chaine,则替换字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sed 替换包含字符串的整行

awk / sed:如果任何字段与模式匹配,则替换所有字段

sed命令替换字符包含斜杠,引号的处理方法

shell sed 问题

如何使用sed搜索和替换]、[? [关闭]

如何在Unix下使用sed命令