我一直在嘗試使用awk re-write一個egrep命令來提高性能,但沒有成功。egrep命令對file1中的記錄和file2中的記錄(部分匹配)執行不區分大小寫的簡單搜索。下面是命令和示例輸出。
file1 contains:
Abc
xyz
123
blah
hh
a,b
file2 contains:
abc de
xyz
123
456
blah
test1
abdc
abc,def,123
kite
a,b,c
原始命令:egrep -i -f file1 file2
原始(egrep)命令輸出:
$ egrep -i -f file1 file2
abc de
xyz
123
blah
abc,def,123
a,b,c
我想使用AWK重寫命令以執行相同的操作。我已經嘗試了下面的方法,但它正在進行一場完整的記錄比賽,而不是像grep那樣的部分比賽。
awk中修改的命令:awk 'NR==FNR{a[tolower($0)];next} tolower($0) in a' file1 file2
修改的命令(awk)輸出:
$ awk 'NR==FNR{a[tolower($0)];next} tolower($0) in a' file1 file2
xyz
123
blah
這不包括與字符串“abc”部分匹配的記錄。請幫我修改awk命令好嗎?提前謝謝。
像這樣使用
index
進行部分文字匹配: