ishiducaの日記 このページをアンテナに追加 RSSフィード

2009-03-13

[][][][][][][]続・続・Windowsのコマンドプロントには「ls」コマンドがないので、ワンライナーでそれっぽく代用する 00:17 続・続・Windowsのコマンドプロントには「ls」コマンドがないので、ワンライナーでそれっぽく代用する - ishiducaの日記 を含むブックマーク はてなブックマーク - 続・続・Windowsのコマンドプロントには「ls」コマンドがないので、ワンライナーでそれっぽく代用する - ishiducaの日記 続・続・Windowsのコマンドプロントには「ls」コマンドがないので、ワンライナーでそれっぽく代用する - ishiducaの日記 のブックマークコメント

前述の

とか

を見直していて、こんな書き方もできるなと

$ perl -wl -e '$,="\n"; \
> print map { join "\t",scalar localtime((stat $_)[9]), $_ } @ARGV;' *

stat関数を使って、最終更新日をオプション表示した「ls」コマンドもどきのワンライナー。スクリプト版より情報量が少ないけれど、Stat::lsMode モジュールを使わない分、手軽に使えるんじゃないかと思います。Stat::lsMode モジュールはcpanからインストールする手間があるから面倒な人もいるだろうし。

# 結果
Sun Jan 18 10:28:23 2009    sign.txt
Sun Jan 18 13:51:45 2009    内部監査手順.txt
Sun Jan 25 13:36:08 2009    temp.html
Sun Mar  1 15:20:15 2009    15477800_500.jpg
Sun Mar  8 13:11:02 2009    perl_ls
Thu Feb 19 16:06:56 2009    安全管理規程.txt

まだmap関数とstat関数が飲み込めていないけど、参考にしたところなど

SarifulSariful2012/02/23 16:10Grazi for mkiang it nice and EZ.

crvhjwrmburcrvhjwrmbur2012/02/25 03:2618jHbJ <a href="http://bhiwvkzbhltn.com/">bhiwvkzbhltn</a>

znjenwlznjenwl2012/03/01 01:306WkeFg <a href="http://tgsptrunopdl.com/">tgsptrunopdl</a>

トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20090313

2009-03-08

[][]Windowsのコマンドプロンプトで「ls」コマンドっぽく表示するためのスクリプトを書いてみた 22:38 Windowsのコマンドプロンプトで「ls」コマンドっぽく表示するためのスクリプトを書いてみた - ishiducaの日記 を含むブックマーク はてなブックマーク - Windowsのコマンドプロンプトで「ls」コマンドっぽく表示するためのスクリプトを書いてみた - ishiducaの日記 Windowsのコマンドプロンプトで「ls」コマンドっぽく表示するためのスクリプトを書いてみた - ishiducaの日記 のブックマークコメント

Perlが使える環境であるのは当然として Stat::lsMode モジュールが必要なのが残念だけど、僕的には需要があるので。

#!/usr/bin/perl -s -wl
# lsperl
use strict;
use Stat::lsMode;

our ($a,$l);
@ARGV == 0 and @ARGV = $a ? <.* *> : <*>;

$,="\n";
print $l ? map { &opt($_) } @ARGV : @ARGV;

exit 0;

sub opt{
    my $filename = shift;
    my ( undef, undef, $mode, $nlink, $uid,
      $gid, undef, $size, undef, $modified ) = stat $filename;
    my $mod     = localtime $modified;
    my $userid  = getpwuid $uid;
    my $groupid = getgrgid $gid;
    my $rwx     = format_mode $mode;
    return sprintf "%s %4d %3s %9s %12d %s %s",
      $rwx, $nlink, $userid, $groupid, $size, $mod, $filename;
}

使い方

1. カレントディレクトリ内のファイルのリストを出力する

> perl lsperl

2. カレントディレクトリ内の隠しファイルを含めたリストを出力する(aスイッチを使います)

> perl lsperl -a

3. 詳細なリストを出力する(lスイッチを使います)

> perl lsperl -l

4. 隠しファイルを含めた詳細なリストを出力する

> perl lsperl -a -l

5. ファイルを指定(もしくは、グロブ)する場合

> perl ls perl *.txt

こんな感じになります

> perl lsperl -a -l
-rw-r--r--    1 ishiduca     staff        12288 Sun Mar  8 22:20:25 2009 .lsperl.swp
-rw-r--r--    1 ishiduca     staff        12288 Tue Dec 23 15:54:41 2008 .our.swp
-rw-r--r--    1 ishiduca     staff        11644 Fri Jan 16 19:44:17 2009 旅費費内訳.ods
-rw-r--r--    1 ishiduca     staff          731 Mon Dec 15 16:53:51 2008 手順書.txt
-rw-r--r--    1 ishiduca     staff          229 Thu Mar  5 16:36:28 2009 0208.txt
-rw-r--r--    1 ishiduca     staff        54526 Sun Mar  1 15:20:15 2009 15477800_500.jpg
-rw-r--r--    1 ishiduca     staff          468 Fri Feb 13 15:51:00 2009 20090213.csv
-rw-r--r--    1 ishiduca     staff         1398 Thu Feb 19 16:06:56 2009 安全管理規程.txt

[][][][]Windowsのコマンドプロンプトには「ls」コマンドがないので、ワンライナーでそれっぽく代用する 09:36 Windowsのコマンドプロンプトには「ls」コマンドがないので、ワンライナーでそれっぽく代用する - ishiducaの日記 を含むブックマーク はてなブックマーク - Windowsのコマンドプロンプトには「ls」コマンドがないので、ワンライナーでそれっぽく代用する - ishiducaの日記 Windowsのコマンドプロンプトには「ls」コマンドがないので、ワンライナーでそれっぽく代用する - ishiducaの日記 のブックマークコメント

> perl -wl -e '$,="\n"; print <*>;'

当然、Perlがインストールされていないと意味がない。あと、隠しファイルの場合は「<*>」を「<.*>」にする。「<.* *>」もあり。


追記 2009.03.08

任意の拡張子のファイル(この例だと「.txt」「.pl」)をリストする時には

> perl -wl -e '$,="\n"; print @ARGV;' *.txt *.pl

KipliKipli2012/06/07 10:17Fiindng this post has solved my problem

bqtgebmvrkbqtgebmvrk2012/06/07 20:44tSnpI6 <a href="http://szepiuqnbvdq.com/">szepiuqnbvdq</a>

bgebwyvpcsbgebwyvpcs2012/06/12 03:41QuzFIv <a href="http://bevrhjshdskz.com/">bevrhjshdskz</a>

vqnxgsvqnxgs2012/06/13 09:00uKYnq0 , [url=http://jzoegncuwcdb.com/]jzoegncuwcdb[/url], [link=http://jtzcwsjlubwn.com/]jtzcwsjlubwn[/link], http://irrladcrhhgr.com/

トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20090308