GNU/Linux >> Tutoriels Linux >  >> Linux

Comment laisser `sort | Uniq -c` séparer le nombre d'occurrences par un caractère de tabulation ?

uniq -c sépare le numéro d'occurrence par des espaces, ce qui est difficile pour cut ou awk pour le séparer plus tard.

1000_A1\tB1\n
___1_A2\tB2\n

Je peux résoudre ce problème en utilisant sed -r 's/^ *([0-9]+)/\1\t/' pour changer le délimiteur en tabulation. Puis cut -f1 pourrait renvoyer :

1000\tA1\tB1\n
1\tA2\tB2\n

Mais il semble courant d'avoir uniq -c séparez le numéro par tabulation. Pourquoi cette fonctionnalité est-elle manquante ? Existe-t-il un autre moyen plus simple de le faire ?

Réponse acceptée :

On dirait que vous avez un format comme <number><space><field 1 name><tab><field 2 name> , et vous voulez vérifier que l'entrée est triée par field 1 name . Si c'est ce que vous voulez, supprimez simplement la partie initiale du nombre et vérifiez le tri de la partie restante de la première colonne :

echo "$input" | sed -r 's/^ *[^ ]+ //' | sort -c -k1,1

Linux
  1. Comment augmenter le nombre d'inodes dans un système de fichiers Ext4 ?

  2. Comment canaliser la liste des commandes affichées par "onglet complet" ?

  3. Comment compter le nombre de lignes dans un fichier après une correspondance Grep ?

  4. Comment obtenir le nombre de CPU sous Linux en utilisant C ?

  5. Comment obtenir le nombre de disques physiques sous Linux ?

Comment utiliser la commande Bash let {avec exemples}

Comment compter les occurrences de mots dans un fichier texte

Comment trouver le numéro de port d'un service sous Linux

Comment utiliser la commande uniq pour traiter des listes sous Linux

Comment obtenir le nombre de processeurs/cœurs sous Linux

Comment effacer le numéro de ligne dans Vim lors de la copie ?