Awk - gwenn/hypomnemata GitHub Wiki

Filtering

awk 'NR==1; /Lisa/'
awk 'NR==1; /Lisa/ { gsub(/[aeiou]/, "_"); print }'

CSV fields numbering

awk 'BEGIN {FS=";"}; { for (i = 1; i <= NF; i++) print i " " $i }'
awk 'BEGIN {FS=","}; { for (i = 1; i <= NF; i++) print i-1 " " $i }'

CSV columns reordering

cat my.csv | awk 'BEGIN {FS=";";OFS=";"} {print $1,"",$3,$5,$6,$7,"",$2,$4,$8,$9,$10,"","","","","","","",$14,"","","","","",$15,"",$11,$12,$13}' > my_.csv

CSV fix ('NULL' -> blank)

awk -F ';' '$3 ~ /NULL/ { next } {gsub(/\<NULL\>/, "")}1' my.csv

CSV header

NR == 1 {
    for (i = 1; i <= NF; i++) {
        #gsub(/^ *| *$/, "", $i);
        print "Field " i " is " $i;
        header[i] = $i;
    }
    next;
}
1 {
    for (i = 1; i <= NF; i++) {
        print header[i] ": " $i;
    }
}

CSV diff transform

NR == 1 { print "DIFF" FS $0; next }
/^[:digit:]+/ || /^---/ { next }
/^< / {sub(/^< /, "-" FS); print; next }
/^> / {sub(/^> /, "+" FS); print; next }

TSV change/force column value

BEGIN { FS = "\t"; OFS = "\t" } { $12 = "0"; print $0 }
BEGIN { FS = "\t"; OFS = "\t" } ($1 == "Sigma:") { for (i = 2; i <= NF; i++) { $i = "0.000000" } } { print }

or

BEGIN { FS = "\t"; OFS = "\t" } ($1 == "Sigma:") { s=$1; for (i = 2; i <= NF; i++) { s = s OFS "0.000000" }; $0=s }; { print }

TSV extract block

BEGIN { FS = "\t"; OFS = "|" } ($1 == "Spread_Credit:") { SC = $2; SE = $3 } ($1 == "Param_Modele:") { print SC, SE, $2 }
BEGIN { FS = "\t"; OFS = "|" } ($1 == "Secteur:" && $2 == "REFERENCE") { print $3, $7 }
⚠️ **GitHub.com Fallback** ⚠️