$ cat match.awk
#! /bin/awk
BEGIN{FS=":"}
/cyril/{
print $0
print match($0, /cyril/)
print substr($0, match($0, /cyril/), length("cyril"))
print gensub(/cyril/, "mark", 2)
print $0
sub(/^.*cyril/, "mark")
print $0
}
$ awk -f match.awk /etc/passwd
lcyril:x:100:1::/export/lcyril:/usr/bin/bash
2
cyril
lcyril:x:100:1::/export/lmark:/usr/bin/bash
lcyril:x:100:1::/export/lcyril:/usr/bin/bash
mark:/usr/bin/bash
這個例子用了length()這個函數,regex不用引號,有string的地方要用
double quote括起來,用gensub不會改變string2的值,
而且請看第三個print $0,這邊還是有greedy的效應在,所以只剩下後面一截。