zshのzargsコマンドの使い方 - 技術メモ帳

それFile::Zglobでできるかもいうことでperlで書いてみた。zshじゃなくても使える。

zargsはxargs相当のコマンド実行機能もあるけど、ファイル一覧さえ作れればxargs使えばいい。

#!/usr/bin/env perl

use strict;
use warnings;
use File::Zglob;
use Getopt::Long;
use Pod::Usage;

our $VERSION=$File::Zglob::VERSION;

GetOptions (
    'h|help' => \my $help,
    'v|version' => \my $version,
) or pod2usage(2);
$version and do { print "zglob: $VERSION\n"; exit 0 };
pod2usage(1) if $help;

my @args = @ARGV;
pod2usage(2) unless $args[0];

print $_,"\n" for zglob($args[0]);


__END__

=head1 NAME

zglob - extended globs

=head1 SYNOPSIS

 zglob ([options] --) pattern

 Options:
    -help -h                       brief help message

サンプル

$ zglob '**/*.pm' | head
blib/lib/CloudForecast.pm
blib/lib/Shirahata.pm
blib/lib/CloudForecast/Component.pm
blib/lib/CloudForecast/ConfigLoader.pm
blib/lib/CloudForecast/Data.pm
blib/lib/CloudForecast/Gearman.pm
blib/lib/CloudForecast/Host.pm
blib/lib/CloudForecast/Ledge.pm
blib/lib/CloudForecast/Log.pm
blib/lib/CloudForecast/Radar.pm

パターンをquoteする必要があるのが面倒だ。

この手のツールは便利かもしれないけどサーバに入れてまわるのが面倒なので普通に入っているfindなどのコマンドを使った方が結局、楽な罠

このブログ記事について

このページは、Masahiro Naganoが2012年8月13日 18:32に書いたブログ記事です。

ひとつ前のブログ記事は「「初めてのPerl 第6版」がでたそうです」です。

次のブログ記事は「ProcletでSTDOUT/STDERRにサービス名を追加して表示できるようになったよー」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja