web-dev-qa-db-fra.com

Comment utiliser la commande cut dans bash pour afficher toutes les colonnes sauf celles indiquées?

J'ai besoin de supprimer une colonne d'un fichier texte brut. Je pense que cela pourrait être fait en utilisant l'inverse de la commande cut. Je veux dire, quelque chose comme ça:

Si c'est mon dossier:

01 Procedimiento_tal retiro aceptado
01 tx1
01 tx2
01 tx3
02 Procedimiento_tal retiro rechazado
02 tx1
02 tx2
02 tx3
03 Procedimiento_tal retiro aceptado
03 tx1
03 tx2
03 tx3

Que puis-je faire pour supprimer la première colonne avec cut et obtenir le texte suivant dans bash?:

Procedimiento_tal retiro aceptado
tx1
tx2
tx3
Procedimiento_tal retiro rechazado
tx1
tx2
tx3
Procedimiento_tal retiro aceptado
tx1
tx2
tx3

Merci d'avance

23
Herman

Utilisation de cut:

cut -d ' ' -f 2- input-file

devrait faire ce que vous voulez.

46
William Pursell

Pour lire infile en utilisant ' ' comme délimiteur (-d) et mettez les champs (-f) À partir de 2 (2-) dans file:

cut -d' ' -f2- infile > file

Voir man cut pour plus d'options.

N.B: Ce n'est pas bash - spécifique.

15
Johnsyweb

GNU coreutils cut prend en charge le --complement drapeau. Donc, si vous utilisez cette version de cut, vous pouvez dire:

cut --complement -d' ' -f1 infile

Production:

Procedimiento_tal retiro aceptado
tx1
tx2
tx3
Procedimiento_tal retiro rechazado
tx1
tx2
tx3
Procedimiento_tal retiro aceptado
tx1
tx2
tx3
9
Thor

Voici une commande qui fonctionne, et qui est un peu plus courte que celle de tout le monde:

cut -b 4- input-file

-b signifie octet et sélectionne les octets qui seront collés à l'écran.

4- fait partie de -b et cela signifie qu'il sélectionnera le 4ème caractère de chaque ligne jusqu'au dernier caractère de chaque ligne. la commande couper collera alors la sélection à l'écran.

1
Flare Cat