Re: sort question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'd like to sort, maybe cut, and redirect text lines based on the 3 or 4
last chars; is this possible? how?

One key element you omit is whether the lines are all the same length, or if they have varying lengths.

If they're all the same length, you can just determine the offsets and use those for sorting.

However, if they have a ragged right-edge (aren't the same length), you'll need to do a bit more work.

If I understand what you're trying to do, you want to isolate the last couple characters in the line, throwing away the rest of the line, sort+unique the remainder, and then dump the results to a file. That could be done with sed and sort:

  sed 's/.*\(...\)$/\1/' src.txt | sort -u > nodupes.txt

That should do the last three characters ("..."). If you need 4, just add an extra period. I used the "-u" functionality of sort which is the same as a basic sort+uniq call (if you need some of uniq's other functionality like counting, you'd have to use it too). The only caveat is the semi-undefined behavior if a line has less than 3 or 4 characters in it, which this handles, and just treats it as its own thing to be sorted/uniq'ed/output.

Hope this helps,

-tim


_______________________________________________
Blinux-list mailing list
Blinux-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/blinux-list

[Index of Archives]     [Linux Speakup]     [Fedora]     [Linux Kernel]     [Yosemite News]     [Big List of Linux Books]