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
これは素晴らしい作品です。