2013-10-02 6 views
-2

Je tente d'enlever trois colonnes avec Perl sur un fichier tabulé.Suppression de colonnes avec perl sur un fichier délimité par des tabulations

fichier d'entrée:

A B C D 

attendu/nouveau fichier:

A B C 

j'ai vu dans d'autres question comment supprimer une seule colonne, l'être de réponse:

perl.exe -na -e "print qq{$F[3]\n}" < input 

Comment pourrais-je réécrire ceci pour enlever trois colonnes?

Merci

+3

Savez-vous quoi que ce soit à propos de Perl du tout? Ce n'est pas le lieu de demander une solution gratuite ou un tutoriel de base. – Borodin

+0

Juste supprimer les colonnes de Google avec perl sur le fichier délimité par des tabulations. C'est beaucoup plus rapide ... – fugu

Répondre

1

Est-ce travail pour vous:

perl.exe -na -e "print qq{@F[0..2]\n}" <input> newfile 
1

Utilisez perl dans awk-mode:

$ cat -T f1 
a^Ib^Ic^Id^Ie^If 
a^Ib^Ic^Id^Ie^If 
a^Ib^Ic^Id^Ie^If 

$ perl -F'\t' -lane 'print $F[0],"\t",$F[1],"\t",$F[2]' input 
a b c 
a b c 
a b c 

ou avec espaces:

$ perl -F'\t' -lane 'print qq{@F[0..2]}' input 
a b c 
a b c 
a b c 

ou imprime les trois premières colonnes, tab-s eparated dans awk

$ awk 'BEGIN{OFS="\t"}{print $1, $2, $3}' input 
a b c 
a b c 
a b c 
1
perl -lane "pop @F; print qq(@F)" input 
0

Voici une autre option (Perl v5.14 +):

perl -lne "print s/.+\K\s+\S$//r" inFile 
Questions connexes