删除2个单词之间的数据

删除2个单词之间的数据

我想删除所有数据,无论 2 个单词之间有什么。这两个词是userGecko),正如它所显示的那样。

例如:

abcd: efgh user jfslkdj ajskdlfj askldjf Gecko) print
ijkl: mnop user fjskdf sdfjkdf skdjf sdkfj Gecko) second

应显示为:
abcd: efgh print
ijkl: mnop second

请告诉我这是否可行。

到目前为止,这是我尝试过的,我知道我还很遥远:

sed 's/user*Gecko)//g'

答案1

您可以修改您的命令,例如:

sed 's/user.*Gecko)//g'

它将删除子字符串user.....Gecko)

您可以使用:

sed -Ee "s/(.*)(user.*Gecko\))(.*)/\1\3/g" filename

它只会打印第一个和第三个字段,而忽略第二个字段,其中包含用户和 Gecko 之间的所有内容,包括两者。

如果您确定这user不是起始词也不Gecko)是最后一个词,那么您可以使用:

sed -Ee "s/(.*) (user.*Gecko\)) (.*)/\1 \3/g" filename

这个更准确,因为它只会替换由空格分隔的单词。

答案2

我尝试使用下面的命令,效果很好

awk '{print $1,$2,$NF}'  filename

输出

abcd: efgh print
ijkl: mnop second

相关内容