0
我有一個包含一系列的線,如下文件:匹配線
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
grep -E '^(db|td|sb)' file | grep -Ev '_(migrated|old)$'
或
perl -lne 'print if /^(db|td|sb)/ and not /_(migrated|old)$/' file
是,其可能的。 __info grep__是你的朋友。 – devnull