NAME
sort-by-lines - Sort lines of text by other lines of text as keys
VERSION
This document describes version 0.002 of sort-by-lines (from Perl distribution App-SortByLines), released on 2019-05-18.
SYNOPSIS
% sort-by-lines [OPTION]... FILE1 FILE2
Sample command:
% sort-by-lines file.txt <(perl -nE'say length' file.txt)
You can use "-"
(in at most one of the files) to mean standard input. Tip: You can use process substitution in bash.
Sample input file file.txt:
one
two
three
four
Sample output:
one
two
four
three
DESCRIPTION
This utility sorts lines of text by other lines of text as keys.
EXIT CODES
0 on success.
1 on I/O error.
99 on command-line options error.
OPTIONS
FAQ
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/App-SortByLines.
SOURCE
Source repository is at https://github.com/perlancar/perl-App-SortByLines.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=App-SortByLines
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
https://en.wikipedia.org/wiki/Schwartzian_transform in Perl 5.
Unary sort or "sort by" implementations in other languages like Perl 6, Python, etc.
Unix command sort, particularly the -k
(--key
) option. To do a schwartzian transform on the command-line, using the Tab character to separate the key and value (meaning Tab character in FILE2 will confuse the result):
% paste FILE2 FILE1 | sort -s -k1,2n | cut -f2-
Also notice the use of -s
(--stable
) option to preseve the order of lines of the same length. Thanks to Ed Morton for the above tip (https://stackoverflow.com/questions/56200144/how-to-sort-lines-of-text-by-other-lines-of-text-as-keys/56200757).
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.