App-CommonPrefixUtils
view release on metacpan or search on metacpan
script/strip-common-prefix view on Meta::CPAN
#!perl
use 5.010001;
use strict;
use warnings;
use Getopt::Long;
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2024-05-16'; # DATE
our $DIST = 'App-CommonPrefixUtils'; # DIST
our $VERSION = '0.001'; # VERSION
my %Opts = (
);
sub parse_cmdline {
Getopt::Long::Configure("gnu_getopt", "no_ignore_case");
my $res = GetOptions(
'version|v' => sub {
print "strip-common-prefix version ", ($main::VERSION // 'dev'), "\n";
exit 0;
},
'help|h' => sub {
print <<TEXT;
Usage:
strip-common-prefix [OPTIONS]... [INPUT [OUTPUT]]
strip-common-prefix --version, -v
strip-common-prefix --help, -h
Options:
For more details, see the manpage/documentation.
TEXT
exit 0;
},
);
exit 99 if !$res;
}
sub run {
require String::CommonPrefix;
chomp(my @lines = <>);
my $prefix = String::CommonPrefix::common_prefix(@lines);
for (@lines) { s/\A\Q$prefix\E// }
say for @lines;
}
# MAIN
parse_cmdline();
run();
1;
# ABSTRACT: Strip common prefix from each line of input
# PODNAME: strip-common-prefix
__END__
=pod
=encoding UTF-8
=head1 NAME
strip-common-prefix - Strip common prefix from each line of input
=head1 VERSION
This document describes version 0.001 of strip-common-prefix (from Perl distribution App-CommonPrefixUtils), released on 2024-05-16.
=head1 SYNOPSIS
strip-common-prefix [OPTION]... [INPUT]
Sample input:
foobar
foobaz
food
Sample output:
bar
baz
d
=head1 DESCRIPTION
=head1 EXIT CODES
0 on success.
255 on I/O error.
99 on command-line options error.
=head1 OPTIONS
=over
=back
=head1 FAQ
=head1 HOMEPAGE
Please visit the project's homepage at L<https://metacpan.org/release/App-CommonPrefixUtils>.
=head1 SOURCE
Source repository is at L<https://github.com/perlancar/perl-App-CommonPrefixUtils>.
=head1 SEE ALSO
L<strip-common-suffix>
Other utilities in L<App::CommonPrefixUtils>
=head1 AUTHOR
perlancar <perlancar@cpan.org>
=head1 CONTRIBUTING
To contribute, you can send patches by email/via RT, or send pull requests on
GitHub.
Most of the time, you don't need to build the distribution yourself. You can
simply modify the code, then test via:
% prove -l
( run in 0.862 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )