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