J'ai un fichier délimité par des tabulations comme:
name1 verb1 name2 verb2 etc...
Je veux supprimer la deuxième colonne. J'ai essayé de modifier l'une de ces réponses , mais je ne connaissais pas sed
et awk
je n'ai pas pu.
Quelqu'un peut-il m'aider?
x
à supprimer)?Réponses:
Dans vim, vous devriez pouvoir utiliser la commande
(substitut TABsuivi de zéro ou plusieurs occurrences de n'importe quel caractère sauf TABavec rien). Si votre fichier ne comporte que deux colonnes, vous pouvez utiliser un texte légèrement plus simple
:%s/\t.*
ou:%s/\t.*$
qui remplace le premier TABet tous les caractères suivants jusqu'à la fin de la ligne.la source
La réponse acceptée est beaucoup plus élégante que celle-ci (je l'ai votée!) Mais si vous ne vous en souvenez pas, vous pouvez utiliser directement le
vim
mode de blocage visuel . Ouvrez vim et allez (mode normal) dans le premier coin de la colonne, comme ceci:Tapez
CTRL-V
et vous pouvez déplacer le curseur pour sélectionner la colonne, c'est à mi-chemin:Pour aller à la fin, appuyez sur
G
:le bloc semble cassé car nous sommes sur la dernière ligne qui est vide; il suffit de remonter d'une ligne (avec la flèche vers le haut ou
k
) pour la revoir ...:Maintenant, vous appuyez simplement sur
x
pour supprimer le bloc:la source
J'utiliserais
cut
pour çaVous pouvez également l'utiliser comme filtre dans vim (cela remplacera toutes les lignes du fichier; vous pouvez également utiliser (par exemple)
2,9
au lieu de%
traiter les lignes 2 à 9, ou sélectionner les lignes avec lesquelles vous souhaitezV
):-f1,3-
signifie «imprimer le champ un, suivi du champ trois et de tous les champs jusqu'à la fin de la ligne». Par défaut,cut
utilise un onglet comme délimiteur; si vous avez besoin d'autre chose, utilisez l'-d
option (voirman cut
).la source
Vous pouvez essayer soit:
ou manuellement en utilisant le mode visuel:
Pour le faire sur place à partir de la ligne de commande, essayez:
Connexe: Comment écrire un littéral pour la touche Tab à utiliser pour le mouvement?
Voir également:
la source