输出一个列表

sh/bash/dash/ksh/zsh等Shell脚本
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

输出一个列表

#1

帖子 slimhigh » 2011-11-02 22:41

编写一个脚本,脚本以文件名为参数,它输出一个特殊格式的列表,说明文件的(1)权限;(2)大小;(3)文件名;(4)最后一次修改时间;(5)最后一次访问时间。用printf命令显示合适的表头信息。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 输出一个列表

#2

帖子 lilydjwg » 2011-11-02 23:19

课程作业?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 输出一个列表

#3

帖子 枫叶饭团 » 2011-11-02 23:22

这个脚本并不难啊,可惜我没电脑。写不出来
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

Re: 输出一个列表

#4

帖子 slimhigh » 2011-11-02 23:46

lilydjwg 写了:课程作业?
不是作业,我只是问问,看有没有什么好方法。
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

Re: 输出一个列表

#5

帖子 slimhigh » 2011-11-02 23:46

枫叶饭团 写了:这个脚本并不难啊,可惜我没电脑。写不出来
大概思路?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 输出一个列表

#6

帖子 lilydjwg » 2011-11-02 23:56

slimhigh 写了:
lilydjwg 写了:课程作业?
不是作业,我只是问问,看有没有什么好方法。
分析 stat 的输出呗
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

Re: 输出一个列表

#7

帖子 slimhigh » 2011-11-03 11:01

lilydjwg 写了:
slimhigh 写了:
lilydjwg 写了:课程作业?
不是作业,我只是问问,看有没有什么好方法。
分析 stat 的输出呗
用ls 不行吗? 我就是不知到怎么把输出组织成一张表。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 输出一个列表

#8

帖子 枫叶饭团 » 2011-11-03 11:05

slimhigh 写了:用ls 不行吗? 我就是不知到怎么把输出组织成一张表。
用ls输出管道给sed或者VIM处理成一张表?我还不知道ls的输出到文件里会变成什么样子哦
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 输出一个列表

#9

帖子 eexpress » 2011-11-03 11:10

估计只是考ls+awk
● 鸣学
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

Re: 输出一个列表

#10

帖子 slimhigh » 2011-11-03 21:38

看来这么简单的也没人会。。。。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 输出一个列表

#11

帖子 枫叶饭团 » 2011-11-03 21:44

slimhigh 写了:看来这么简单的也没人会。。。。
自己的事自己做。我认为神会
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 输出一个列表

#12

帖子 lilydjwg » 2011-11-03 21:54

slimhigh 写了:看来这么简单的也没人会。。。。
不是不会,而是太简单没挑战性懒得去写。
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

Re: 输出一个列表

#13

帖子 slimhigh » 2011-11-03 21:58

lilydjwg 写了:
slimhigh 写了:看来这么简单的也没人会。。。。
不是不会,而是太简单没挑战性懒得去写。
。。。。
上次由 slimhigh 在 2011-11-03 23:37,总共编辑 1 次。
slimhigh
帖子: 67
注册时间: 2010-05-06 19:29

Re: 输出一个列表

#14

帖子 slimhigh » 2011-11-03 23:36

写了个凑和的,总是避免不了用临时文件,输出对齐也不是很好。

代码: 全选

#!/bin/bash
ls -l $* | tr -s ' ' | cut -d' ' -f1,5,8 | tr ' ' '\t' > tmp.txt
ls -l $* | tr -s ' ' | cut -d' ' -f6,7 | paste tmp.txt - > tmp1.txt 
rm tmp.txt
ls -lu $* | tr -s ' ' | cut -d' ' -f6,7 | paste tmp1.txt - > tmp.txt
printf "permission\tsize\tfile\tModify\tAccess\n"
cat tmp.txt
rm tmp.txt tmp1.txt
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 输出一个列表

#15

帖子 lilydjwg » 2011-11-03 23:51

slimhigh 写了:写了个凑和的,总是避免不了用临时文件,输出对齐也不是很好。

代码: 全选

#!/bin/bash
ls -l $* | tr -s ' ' | cut -d' ' -f1,5,8 | tr ' ' '\t' > tmp.txt
ls -l $* | tr -s ' ' | cut -d' ' -f6,7 | paste tmp.txt - > tmp1.txt 
rm tmp.txt
ls -lu $* | tr -s ' ' | cut -d' ' -f6,7 | paste tmp1.txt - > tmp.txt
printf "permission\tsize\tfile\tModify\tAccess\n"
cat tmp.txt
rm tmp.txt tmp1.txt
用变量啊。。。
回复