使用Bash删除具有特定模式的行

viv*_*vas 3 linux bash awk sed

我有一个文件,每行有一个单词/字符.例:

a
abandonado
esta
estabelecimento
o
onibus
c
casa
police
Run Code Online (Sandbox Code Playgroud)

我需要删除具有特定模式的行(例如模式"esta").我试着用awk

cat file | awk '!/^esta/' 
Run Code Online (Sandbox Code Playgroud)

但这种解决方案中删除与该模式的所有行"esta""estabelecimento"太.我只需要删除具有特定模式的"esta"行不符合"estabelecimento".

带有图案"o"和线条的线条也会出现同样的问题"a".该命令将删除所有以此模式开头的行.

Jea*_*bre 8

简单使用grep:

grep -v -w esta file
Run Code Online (Sandbox Code Playgroud)
  • -w 选项匹配"仅限单词"/"确切单词":正是您需要的
  • -v 选项反转匹配:仅打印不匹配的行