0
votes

Comment extraire la colonne dans le fichier texte à bash

J'ai un fichier texte, le format est ci-dessous et je voudrais seulement capturer les chiffres après le .txt . Je l'ai fait awk '{imprimé $ 2}' 'nom de fichier et cela m'a donné le mauvais résultat.

Pour certaines des lignes, cela m'a donné : au lieu du nombre. Par exemple, dans la deuxième ligne, je vais obtenir : au lieu de 914 .

y a-t-il d'autre manière que je peux extraire les chiffres après .txt ? Je ne parle pas de chiffres dans la partie rgb . xxx


1 commentaires

En regardant votre Posting Historique Je pense que vous devriez lire ceci: meta.stackexchange.com/a/5235


4 Réponses :


1
votes

Vous avez oublié de spécifier un séparateur de champ personnalisé. Comme xxx


0 commentaires

1
votes

Pourriez-vous essayer de suivre suivi. XXX PRE>

2ème solution: em> stry> Utilisation du séparateur de champ. P>

awk 'BEGIN{FS="[.:]"} $2=="txt"{print $3+0}'  Input_file


0 commentaires

0
votes

Vous pouvez utiliser GNU Grep pour cela: xxx

-p active les expressions régulières compatibles Perl (requises pour le \ k ), et -o ne conserve que la correspondance.

L'expression régulière recherche de la chaîne .txt: , suivi de n'importe quel nombre de blancs (y compris zéro); Cette partie de la correspondance est supprimée ( \ k ), puis nous correspondons autant de chiffres que nous pouvons trouver.


0 commentaires

1
votes

Vous pouvez également utiliser la commande CUT

cut -d ':' -f 2 filename


1 commentaires

Par cela, vous obtenez aussi des espaces que le nombre lui-même. Je jouerais ceci: Cut -D ':' -F 2 xxx | sed -e "s / // g". J'aime beaucoup votre solution, car des outils tels que CUT et SED ont une empreinte de mémoire inférieure comparée à Gawk, ce qui a une grande quantité de capacités.