A GRASS-GIS way:
get the NUTS 2013 ESRI Shapefile
wget http://ec.europa.eu/eurostat/cache/GISCO/geodatafiles/NUTS_2013_01M_SH.zip
unzip
unzip NUTS_2013_01M_SH.zip
and, if not existing, create a Location based on EPSG 3035
grass72 -c NUTS_RG_01M_2013.shp /geo/grassdb/europe/etrs_1989_laea
Else skip the next command and enter in a Location based on the wanted spatial reference system.
Then, navigate to
cd NUTS_2013_01M_SH/data/
and import the vector map
v.in.ogr NUTS_RG_01M_2013.shp out=NUTS_RG_01M_2013
extract all STAT_LEVL_=0 to a new map
v.extract NUTS_RG_01M_2013 out=NUTS_RG_01M_2013_STAT_LEVL_0 where="STAT_LEVL_='0'"
and finally, dissolve to get country boundaries
v.dissolve NUTS_RG_01M_2013_STAT_LEVL_0 out=NUTS_RG_01M_2013_Countries column=NUTS_ID
Voila,
This map contains the NUTS_ID
v.db.select NUTS_RG_01M_2013_Countries
cat|NUTS_ID
1|AT
2|BE
3|BG
4|CH
5|CY
6|CZ
7|DE
8|DK
9|EE
10|EL
11|ES
12|FI
13|FR
14|HR
15|HU
16|IE
17|IS
18|IT
19|LI
20|LT
21|LU
22|LV
23|ME
24|MK
25|MT
26|NL
27|NO
28|PL
29|PT
30|RO
31|SE
32|SI
33|SK
34|TR
35|UK
So, the following CSV might be useful for the ones who need to join-in the ISO3166-1-alpha3 country codes
NUTS_ID,iso31661a2,iso31661a3
AT,AT,AUT
BE,BE,BEL
BG,BG,BGR
CH,CH,CHE
CY,CY,CYP
CZ,CZ,CZE
DE,DE,DEU
DK,DK,DNK
EE,EE,EST
EL,GR,GRC
ES,ES,ESP
FI,FI,FIN
FR,FR,FRA
HR,HR,HRV
HU,HU,HUN
IE,IE,IRL
IS,IS,ISL
IT,IT,ITA
LI,LI,LIE
LT,LT,LTU
LU,LU,LUX
LV,LV,LVA
ME,ME,MNE
MK,MK,MKD
MT,MT,MLT
NL,NL,NLD
NO,NO,NOR
PL,PL,POL
PT,PT,PRT
RO,RO,ROU
SE,SE,SWE
SI,SI,SVN
SK,SK,SVK
TR,TR,TUR
UK,GB,GBR