从特定单词开始后删除所有单词

时间:2012-10-25 09:27:13

标签: sed

如何删除以下字符串中从COMMENT字开始的所有单词?

echo "first_mail_sent_date_time datetime NOT NULL  COMMENT 'The date and time',"  |  sed 's/ COMMENT \w*/ /g'

上面的sed命令只会删除单词COMMENT。我需要在COMMENT之后删除所有内容,但保留最后一个逗号。

我可以使用awk,但我一直在寻找sed解决方案。

awk -F'COMMENT' '{print $1 ","}'

2 个答案:

答案 0 :(得分:2)

这可能适合你(GNU sed):

sed 's/ COMMENT.*,/,/' file

答案 1 :(得分:1)

使用此sed命令:

sed "s/ COMMENT.*'[^']*'/ /"

<强> TEST:

str="first_mail_sent_date_time datetime NOT NULL COMMENT 'The date and time'FOO,"
echo $str | sed "s/ COMMENT.*'[^']*'/ /"

<强>输出:

first_mail_sent_date_time datetime NOT NULL FOO,