uniq -c memisahkan nomor kemunculan dengan spasi, yang sulit untuk cut atau awk untuk memisahkannya nanti.
1000_A1\tB1\n
___1_A2\tB2\n
Saya dapat menyelesaikan masalah ini menggunakan sed -r 's/^ *([0-9]+)/\1\t/' untuk mengubah pembatas menjadi tab. Kemudian cut -f1 bisa kembali:
1000\tA1\tB1\n
1\tA2\tB2\n
Tetapi tampaknya penggunaan umum untuk memiliki uniq -c pisahkan nomor dengan tab. Mengapa fitur ini hilang? Apakah ada cara lain yang lebih mudah untuk melakukannya?
Jawaban yang Diterima:
Sepertinya Anda memiliki format seperti <number><space><field 1 name><tab><field 2 name> , dan Anda ingin memeriksa apakah input diurutkan menurut field 1 name . Jika itu yang Anda inginkan, cukup hapus bagian nomor awal dan periksa pengurutan bagian yang tersisa dari kolom pertama:
echo "$input" | sed -r 's/^ *[^ ]+ //' | sort -c -k1,1