Awk 정규식에서 수량자를 사용하는 데 문제가 있습니다.
awk -F"|" -v col="$COUNTER" '$col ~ /doi\/tm-[a-z0-9]/ { print $col } ' OFS=, tmp.csv
이것은 잘 작동하지만 [a-z0-9] 클래스에 8자 제한을 지정하고 싶습니다.
그래서 나는 이렇게 했습니다:
awk -F"|" -v col="$COUNTER" '$col ~ /doi\/tm-[a-z0-9]{8}/ { print $col } ' OFS=, tmp.csv
작동하지 않으며 다음과 같습니다.
awk -F"|" -v col="$COUNTER" '$col ~ /doi\/tm-[a-z0-9]\{8\}/ { print $col } ' OFS=, tmp.csv
아니요.
이것은 Ubuntu 20.04 시스템에 있습니다.
답변1
실제로 기본 awk를 gawk로 변경하면 문제가 해결되었습니다.
gawk -v col="$COUNTER" 'BEGIN{ FS = "|" } $col ~ /doi\/tm-[a-z0-9]{8}/ { print $col } 1' OFS=, tmp.csv
이것은 훌륭하게 작동합니다.