J'ai un fichier texte, le format est ci-dessous et je voudrais seulement capturer les chiffres après le Pour certaines des lignes, cela m'a donné y a-t-il d'autre manière que je peux extraire les chiffres après .txt code>. Je l'ai fait
awk '{imprimé $ 2}' 'nom de fichier code> et cela m'a donné le mauvais résultat.
: code> au lieu du nombre. Par exemple, dans la deuxième ligne, je vais obtenir
: code> au lieu de
914 code>. P>
.txt code>? Je ne parle pas de chiffres dans la partie
rgb code>. P>
4 Réponses :
Vous avez oublié de spécifier un séparateur de champ personnalisé. Comme
Pourriez-vous essayer de suivre suivi. awk 'BEGIN{FS="[.:]"} $2=="txt"{print $3+0}' Input_file
Vous pouvez utiliser GNU Grep pour cela: L'expression régulière recherche de la chaîne -p code> active les expressions régulières compatibles Perl (requises pour le
\ k code> ), et
-o code> ne conserve que la correspondance. p>
.txt: code>, suivi de n'importe quel nombre de blancs (y compris zéro); Cette partie de la correspondance est supprimée (
\ k code>), puis nous correspondons autant de chiffres que nous pouvons trouver. p> p>
Vous pouvez également utiliser la commande CUT
cut -d ':' -f 2 filename
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.
En regardant votre Posting Historique Je pense que vous devriez lire ceci: meta.stackexchange.com/a/5235