2017-10-16 8 views
0

Dans le cadre d'un système kdb q qui exécute simplement une commande awk, je peux trouver le nombre de colonnes dans un fichier CSV à charger dans kdb.Comment obtenir le nombre variable de colonnes dans un fichier CSV sous Windows?

.helper.ux.getnumberofcolumns:{[filename] 
    ncols:@[system;"awk -F, '{print NF; exit}' ",filename;()]; 
    :first {"I"$x} @/: ncols;} 

La commande système basé awk fait simplement awk -F, '{print NF; exit}' <filename>

Y at-il une commande similaire je peux utiliser en batch shell Windows/cmd etc pour accomplir la même chose? importante sans installer Cygwin (intérieur corp ne peut pas l'installer)

+0

Il y a un port de awk (et presque toutes les commandes de shell Linux) à Windows –

Répondre

1

En supposant que toutes les lignes du fichier csv ont le même nombre de champs, vous pouvez utiliser le premier enregistrement du fichier pour déterminer le nombre de champs dans le fichier.

{count "," vs raze "head -1 ",x} 
1

Powershell:

Get-Content .\awk.txt | %{ $a=$_.Split(','); Write-Host "No of fields in record="$a.length; break; } 

En savoir plus sur cette here.