2017-10-16 9 views
1

Je travaille avec une grande quantité de données contenant sept colonnes.Utilisation de SED ou d'AWK pour séparer les données de colonne .csv à l'aide d'un délimiteur

Les colonnes 2-7 contiennent des données précédées du nom d'en-tête de colonne + "=". Par exemple la colonne 2 contient ces données:

Row 1: Date=2017-08-19 
Row 2: Date=2017-08-19 
Row 3: Date=2017-08-19 
Row 4: Date=2017-08-19 

Par exemple la colonne 3 contient les données suivantes:

Row 1: Campaign=123456789 
Row 2: Campaign=123456789 
Row 3: Campaign=123456789 
Row 4: Campaign=123456789 

je dois supprimer les données préfixé (tous qui utilise la chaîne + « = » Format) de sorte que chaque cellule ne contienne que les données réelles. Comment puis-je faire cela en utilisant SED ou AWK et surtout comment puis-je exporter ces données dans un nouveau fichier qui contient les données nues (données non pré-ajoutées)? Je vous remercie.

11111111-1111-1111-111111111111 Date=2017-08-18 00:10:26.39242 Campaign_ID=123456789 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-18 00:27:38.416628 Campaign_ID=123456790 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-28 07:35:48.400623 Campaign_ID=123456791 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-14 09:34:12.602475 Campaign_ID=123456792 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-21 13:27:01.466864 Campaign_ID=123456793 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-12 16:42:07.427034 Campaign_ID=123456794 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-19 20:31:09.754326 Campaign_ID=123456795 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-30 14:32:28.054 Campaign_ID=123456796 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-09 12:08:31.876589 Campaign_ID=123456797 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 
11111111-1111-1111-111111111111 Date=2017-08-21 22:03:17.1221 Campaign_ID=123456798 placement_name=HELLO event_type=Impressions pcp=NA package_name=WORLD 

Répondre

2

sed solution:

sed 's/[^[:space:]=]*=//g' file > newfile 
+0

Hey, donc la solution que vous avez fourni un peu travaillé. Il supprime la chaîne préfixée + "=" des colonnes, mais supprime toutes les données des colonnes 3-6. De plus, il a généré les données dans une seule colonne, ce qui signifie qu'il a combiné les données de la colonne 2 et de la colonne 7 dans une seule cellule pour chaque ligne de données. – pghInitechBranch

+0

@pghInitechBranch, au lieu de suivre les détails de vos résultats locaux - mettre à jour votre question affichant toutes les colonnes réelles. (c'est-à-dire afficher les données réelles) – RomanPerekhrest

+0

Mis à jour avec l'exemple csv. – pghInitechBranch