我想删除所有数据,无论 2 个单词之间有什么。这两个词是user
和Gecko)
,正如它所显示的那样。
例如:
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