Mysql
 sql >> Base de données >  >> RDS >> Mysql

Extraire des champs spécifiques d'un fichier texte

Ceci est similaire à la réponse de MvG, mais il ne nécessite pas de gawk 4 et utilise donc -F comme suggéré dans cette réponse. Il montre également une technique pour lister les champs souhaités et parcourir la liste. Cela peut faciliter la maintenance du code s'il y a une longue liste.

#!/usr/bin/awk -f
BEGIN {
    col_list = "colour shape size" # continuing with as many as desired for output
    num_cols = split(col_list, cols)
    FS = OFS = ","
}

NR==1 {
    for (i = 1; i <= NF; i++) {
        p[$i] = i # remember column for name
    }
    # next # enable this line to suppress headers.
}

{
    delim = ""
    for (i = 1; i <= num_cols; i++) {
        printf "%s%s", delim, $p[cols[i]]
        delim = OFS
    }
    printf "\n"
}