让ls用农历显示文件的修改时间(Update!)

sh/bash/dash/ksh/zsh等Shell脚本
回复
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

让ls用农历显示文件的修改时间(Update!)

#1

帖子 tusooa » 2010-07-30 19:29

效果:

代码: 全选

tlcr: 0 庚寅年六月廿一日 07:42:00 ~
>> time l
lrwxrwxrwx  1 tusooa tusooa    6 [己丑年腊月初十日 12:02] Apps -> 应用
lrwxrwxrwx  1 tusooa tusooa   14 [庚寅年六月十九日 16:44] Dropbox -> 共享/Dropbox
lrwxrwxrwx  1 tusooa tusooa    6 [己丑年腊月初十日 12:01] Private -> 个人
lrwxrwxrwx  1 tusooa tusooa    6 [己丑年腊月初十日 12:01] Share -> 共享
drwxr-xr-x 12 tusooa tusooa 4.0K [庚寅年六月初六日 22:35] 个人
drwxr-xr-x  5 tusooa tusooa 4.0K [庚寅年五月廿五日  9:56] 共享
drwxr-xr-x 15 tusooa tusooa 4.0K [庚寅年六月初六日 15:17] 应用
ls-l -h --color=always -X   0.54s user 0.15s system 85% cpu 0.798 total
tlcr: 0 庚寅年六月廿一日 07:43:31 ~
>> 
(居然要0.15秒)

实现:

代码: 全选

一日 07:45:22 ~
>> which l
l: aliased to ls-l -h --color=always -X --time-style="+^[[33m[^[[32m%Y-%m-%d ^[[35m%k:%M^[[33m]^[[0m"
tlcr: 0 庚寅年六月廿一日 07:45:33 ~
>> ds-打印脚本.bash ls-l
#!/usr/bin/env perl
# vim : ft=perl

$lsCmd = '/bin/ls -l';

#$lsCmd or die "没有找到 ls。你应该安装 GNU coreutils。\n";

$cmd = "$lsCmd";
for (@ARGV)
{
    $cmd .= " '$_'";
}

system "$cmd | tee /tmp/ls-l &>/dev/null";

open IN, '<', '/tmp/ls-l' or die "无法打开/tmp/ls-l: $!\n";

while (<IN>)
{
    /([0-9]{4})-([0-9]{2})-([0-9]{2})/ or next;
    chomp($cmdOut = `lc-农历.py -S $1 $2 $3`);
    #s@\[.*\$\((.+)\).*\]@$cmdOut@;
    s@[0-9]{4}-[0-9]{2}-[0-9]{2}@$cmdOut@;
    print;
}

close IN;


tlcr: 0 庚寅年六月廿一日 07:45:39 ~
>> 
有点慢。求大牛帮忙优化一下。(主要是要用2次正则)

待会儿用python再写一遍。
上次由 tusooa 在 2010-08-01 7:49,总共编辑 1 次。

代码: 全选

] ls -ld //
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 让ls用农历显示文件的修改时间

#2

帖子 tusooa » 2010-07-31 8:47

好。有人来顶了。

代码: 全选

] ls -ld //
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 让ls用农历显示文件的修改时间

#3

帖子 billbear » 2010-07-31 9:31

ballache...
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 让ls用农历显示文件的修改时间

#4

帖子 tusooa » 2010-07-31 9:33

楼上的看不懂。

代码: 全选

] ls -ld //
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 让ls用农历显示文件的修改时间

#5

帖子 xiooli » 2010-07-31 10:12

按照微软的思路,升级硬件
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 让ls用农历显示文件的修改时间

#6

帖子 tusooa » 2010-07-31 13:20

仍然不明白。

代码: 全选

] ls -ld //
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 让ls用农历显示文件的修改时间

#7

帖子 tenzu » 2010-07-31 13:54

我是来顶的,纯顶
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 让ls用农历显示文件的修改时间

#8

帖子 tusooa » 2010-07-31 14:09

ls这种人通常属于纯看不懂脚本的。

代码: 全选

] ls -ld //
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 让ls用农历显示文件的修改时间

#9

帖子 eexpress » 2010-07-31 15:56

这确实是什么痛。
● 鸣学
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 让ls用农历显示文件的修改时间(Update!)

#10

帖子 tusooa » 2010-08-02 19:15

嘿,一个人也不来顶 :em20

代码: 全选

] ls -ld //
回复