LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2820|回复: 17

Bourne shell去掉扩展名及取得文件的大小。

[复制链接]
发表于 2007-5-28 15:16:45 | 显示全部楼层 |阅读模式
有一变量filename=test.file
首先想取得去掉扩展名的串test.
再就是取得这个文件的大小放于一变量中,谢谢!
发表于 2007-5-28 20:16:39 | 显示全部楼层
filename=test.file
prefix=${file.txt%.*}
size=$(ls -l $filename | awk '{print $5}')

size那一项不知还有没有更好的方法?
回复 支持 反对

使用道具 举报

发表于 2007-5-29 09:02:42 | 显示全部楼层
man wc
回复 支持 反对

使用道具 举报

发表于 2007-5-29 11:38:30 | 显示全部楼层
呵呵,楼上奇思妙想,真不错:

size=$(wc -c <filename)

以往我也是用ls来取文件大小。学了一招:)
回复 支持 反对

使用道具 举报

发表于 2007-5-29 16:37:00 | 显示全部楼层
size=$(stat -c %s $filename)
也可以,可以不用重定向:)。
回复 支持 反对

使用道具 举报

发表于 2007-5-29 18:41:48 | 显示全部楼层
呵呵,办法可真多。感觉最好的还是stat
回复 支持 反对

使用道具 举报

发表于 2007-5-30 10:43:42 | 显示全部楼层
filename=test.file
prefix=${file.txt%.*}

看不懂~~
回复 支持 反对

使用道具 举报

发表于 2007-5-30 11:09:19 | 显示全部楼层
Post by FreeOrDie
filename=test.file
prefix=${file.txt%.*}

看不懂~~

http://linuxsir.cn/bbs/showthread.php?t=298730
看看这个能懂不?
回复 支持 反对

使用道具 举报

发表于 2007-5-30 11:54:51 | 显示全部楼层
谢谢biinn,以前见过字符串匹配居然一点印象没有,呵呵
不过这句好像也不对吧,应该prefix=${filename%.*}?
回复 支持 反对

使用道具 举报

发表于 2007-6-3 01:24:54 | 显示全部楼层
Post by kiron
呵呵,楼上奇思妙想,真不错:

size=$(wc -c <filename)

以往我也是用ls来取文件大小。学了一招:)

wc 有一个问题,需要把文件读取一次,这个问题很大,以后别用了:)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表