Простые замены на отдельные строки - это то, для чего предназначен sed.С GNU или OSX / BSD sed для -E
:
$ sed -E 's:(^|.*/)(pytests|src)/([^/.]+).*:\3:' file
ipa-cert
cs-test
или если вы действительно хотите по какой-то причине использовать awk, тогда с GNU awk для gensub ():
$ awk '{print gensub(/(^|.*\/)(pytests|src)\/([^/.]+).*/,"\\3",1)}' file
ipa-cert
cs-test
и с любым awk:
$ awk 'match($0,/(^|.*\/)(pytests|src)\/[^/.]+/){$0=substr($0,1,RLENGTH); sub(/.*\//,"")} 1' file
ipa-cert
cs-test