Awk 在linux中删除文件中不包含匹配模式的行

Awk 在linux中删除文件中不包含匹配模式的行,awk,sed,Awk,Sed,我有一个文件和它的内容 apple ball .... .... .... cat dog 由此,我想用ball和cat获取行与行之间的所有内容,包括ball,但不包括cat。我怎样才能做到呢?我使用了命令sed-n'/ball/,/cat/p'filename,但它也会打印出我不想要的ball 你能试试下面的吗 awk '/cat/{found=""} /ball/{found=1} found' Input_file 使用sed: sed -n '/ball/,/cat/{/cat/!

我有一个文件和它的内容

apple
ball
....
....
....
cat 
dog

由此,我想用
ball
cat
获取行与行之间的所有内容,包括
ball
,但不包括
cat
。我怎样才能做到呢?我使用了命令
sed-n'/ball/,/cat/p'filename
,但它也会打印出我不想要的
ball

你能试试下面的吗

awk '/cat/{found=""} /ball/{found=1} found' Input_file
使用
sed

sed -n '/ball/,/cat/{/cat/!p;}' Input_file