Comment trouver le nombre de colonnes dans le script shell?
J'ai du fichier texte dire 01-01-2013.txt et il a contenu comme ci-dessous
cat 01-01-2013.txt | cut -d',' -f1-10 | head -6
TIMESTAMP,DATE,HOUR_MINUTE,CAWFM,CSQ2,DBCRIS.CA.MSG,DBI.MSBR.INCOMING.Q,DBI.MSBR.INCOMING.Q.ERROR,DBT.CA.RECEIVE.CUST,DBT.CA.RECEIVE.CUST.ERREUR 20130101000019,01.01.2013,00:00,0,0,0,0,0,6893,31 20130101000133,01.01.2013,00:01,0,0,0,0,0,6858,31 20130101000246,01.01.2013,00:02,0,0,0,0,0,6661,31 20130101000359,01.01.2013,00:03,0,0,0,0,0,6314,31 20130101000512,01.01.2013,00:05,0,0,0,0,0,6074,31
Quand j'ai essayé de trouver le nombre de colonnes j'ai utilisé la commande ci-dessous et je m de ne pas obtenir le résultat attendu comme ci-dessous. son juste de retour 1
awk 'BEGIN {IFS=","};END{print NF}' 01-01-2013.txt
Résultat
1
S'il vous plaît aidez-moi à trouver le nombre total de colonnes.
- est-ce un CSV que vous voulez savoir sur les colonnes? Si non, comment pouvez-vous définir ce qu'est une colonne est? Aussi, la réponse qu'voulez-vous si des lignes différentes ont différents colonne de compte?
Vous devez vous connecter pour publier un commentaire.
Votre exemple ne fonctionne pas car
awk
ne pas utiliser le nomIFS
, l'entrée séparateur de champ est appeléFS
(mais elle n'utilisezOFS
pour la sortie de séparateur de champ).Mais on peut se passer de la lecture du fichier, par exemple par la lecture de la première ligne
ou la première ligne qui correspond à
/,/
Si vous souhaitez la supprimer uniquement les deux premières colonnes, je ne comprends pas pourquoi vous ne restez pas avec
cut
comme dans votre question:awk
mais l'utilisationcut
à la place.Pour trouver le nombre total de colonnes :
Input_file
Awk Code
Sortie
Perl Solution
Enregistrer le code code.pl et exécuter en tant que
Perl Sortie