<分区>
我有一个包含一系列如下行的文件:
dbxxx
dbxxxx
dbxx
tdxx
tdxxx
sbxx
sbxxxxx
dbxx_migrated
tdxxx_old
其中 x = 一位数。
我需要创建一个输出,以确保显示以以下内容开头的行:db、td 和 sb,并排除任何具有 _migrated 和 _old 的行。
这可以使用 grep 来完成吗?
<分区>
我有一个包含一系列如下行的文件:
dbxxx
dbxxxx
dbxx
tdxx
tdxxx
sbxx
sbxxxxx
dbxx_migrated
tdxxx_old
其中 x = 一位数。
我需要创建一个输出,以确保显示以以下内容开头的行:db、td 和 sb,并排除任何具有 _migrated 和 _old 的行。
这可以使用 grep 来完成吗?
最佳答案
您可以使用 awk
组合正则表达式和逻辑运算符:
$ awk '/^(db)|(td)|(sb)/ && !/_(old)|(migrated)/' file
dbxxx
dbxxxx
dbxx
tdxx
tdxxx
sbxx
sbxxxxx
关于linux - 匹配以特定字母开头并排除某些单词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19574553/