删除包含模式的行排除另一个模式bash

删除包含模式的行排除另一个模式bash,bash,Bash,我有一份档案 $ cat File ce5 xxx 123 ed9 myself,yyy,fail? - f27 xxx,fail? 145 105 yyy,fail? - 我想删除bash中包含字符串“fail?”的所有行,而不是“我自己” 预期产量 $ cat File ce5 xxx 123 ed9 myself,yyy,fail? - 我可以grep的行,但不知道如何删除它们 cat File | grep -v "myself" | grep ",fail?" f27 xxx,fa

我有一份档案

$ cat File
ce5 xxx 123
ed9 myself,yyy,fail? -
f27 xxx,fail? 145
105 yyy,fail? -
我想删除bash中包含字符串“fail?”的所有行,而不是“我自己”

预期产量

$ cat File
ce5 xxx 123
ed9 myself,yyy,fail? -
我可以grep的行,但不知道如何删除它们

cat File | grep -v "myself" | grep ",fail?"
f27 xxx,fail? 145
105 yyy,fail? -

我认为你不能(轻易地)用格雷普做这样的事情

打印
mysql
并且不打印
,失败?
使用
sed

sed '/myself/n; /,fail\?/d' File
使用
awk

awk '! /,fail\?/ || /myself/'