Comment obtenir la première colonne de chaque ligne d'un fichier CSV d'entrée et la sortie dans un nouveau fichier? Je pense utiliser awk
mais je ne sais pas comment.
Essaye ça:
awk -F"," '{print $1}' data.txt
Il séparera chaque ligne d'entrée du fichier data.txt
en différents champs en fonction du caractère ,
(comme spécifié par le -F
) et imprimera le premier champ (colonne) sur la sortie standard.
Peut être fait:
$ cut -d, -f1 data.txt
Contribution
a,12,34
b,23,56
Code
awk -F "," '{print $1}' Input
Format
awk -F <delimiter> '{print $<column_number>}' Input
echo "a,b,c" | cut -d',' -f1 > newFile
Ceci peut être réalisé en utilisant grep
:
$ grep -o '^[^,]\+' file.csv
Utiliser Perl:
Perl -F, -lane 'print $F[0]' data.txt > data2.txt
Ces options de ligne de commande sont utilisées:
-n
boucle autour de chaque ligne du fichier d'entrée-l
supprime les nouvelles lignes avant traitement et les rajoute après -a
mode autosplit - divise les lignes d’entrée dans le tableau @F
. La valeur par défaut est la division sur les espaces blancs. -e
exécuter le code Perl -F
modificateur autosplit, dans ce cas, scinde le ,
Si vous souhaitez modifier votre fichier d'origine sur place, utilisez l'option -i
:
Perl -i -lane 'print $F[0]' data.txt
Si vous souhaitez modifier votre fichier d'origine sur place et en faire une copie de sauvegarde:
Perl -i.bak -lane 'print $F[0]' data.txt
Si vos données sont séparées par des espaces et non par des virgules:
Perl -lane 'print $F[0]' data.txt