utiliser bash (sed / awk) pour extraire des lignes et des colonnes dans des fichiers CSV?
Bash est capable de gérer l'extraction de lignes et de colonnes à partir de fichiers csv? En espérant que je n'ai pas à recourir à python..
Mon 5-colonne du fichier csv ressemble:
Rank,Name,School,Major,Year
1,John,Harvard,Computer Science,3
2,Bill,Yale,Political Science,4
3,Mark,Stanford,Biology,1
4,Jane,Princeton,Electrical Engineering,3
5,Alex,MIT,Management Economics,2
Je ne veux extraire le 3e, 4e et 5e le contenu d'une colonne, d'ignorer la première ligne, de sorte que la sortie ressemble à ceci:
Harvard,Computer Science,3
Yale,Political Science,4
Stanford,Biology,1
Princeton,Electrical Engineering,3
MIT,Management Economics,2
Jusqu'à présent je ne peut obtenir de awk pour imprimer chaque ligne ou chaque colonne de mon fichier CSV, mais pas les colonnes/lignes comme ce cas! Peut bash faire cela?
source d'informationauteur user1899415
Vous devez vous connecter pour publier un commentaire.
Bash solutions;
À l'aide de l'IFS
À l'aide de la Manipulation de chaînes et Tableaux
NR est le numéro de ligne courant, tandis que $3, $4 et $5 sont les champs séparés par la chaîne de caractères donnée à F
Essayez ceci:
Utilisation
cut
ettail
:Ici, vous allez, un simple programme AWK.
vérifier ici
Cela pourrait fonctionner pour vous (GNU sed):
essayer cette
ou ce
J'ai créé paquet pour ce genre de tâches - gumba
Si vous vous sentez à l'aise avec coffeescript vous pouvez lui donner un essai
Obtenir toutes les lignes qui commencent par un
,
puis à l'aide desed
pour remplacer les champs vides avec les premier et deuxième du nom.Être prudent pour une raison quelconque une fois que vous le collez les changements de la ligne de cette sorte peut-être de mieux vous soigneusement de le faire manuellement.