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