LinuxSir.cn,穿越时空的Linuxsir!

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

提取大于8.3格式的文件名

[复制链接]
发表于 2004-8-4 12:55:12 | 显示全部楼层 |阅读模式
有文件如下:
-----------------------------
abc.out
de.out
haha.out
hello.out
worldlove.out
myfriends.out
ok.out
abcdefgh.out
-----------------------------
现在欲提取不符合8.3格式的文件名,我是这样的:
$ cat t | sed -n '/^.\{10,\}out$/p'
结果如下:
-----------------------------
worldlove.out
myfriends.out
-----------------------------
不知道,还有没有更简单的方法。
谢谢!^_^
发表于 2004-8-4 13:02:33 | 显示全部楼层
应该是11位吧
 楼主| 发表于 2004-8-4 13:17:00 | 显示全部楼层
扩展名不算,从文件名开头开始到扩展名前(包括'.')这样:8+1=9,
如果写:
cat t | sed -n "/^.\{9,\}out$/"p
则打印如下:
------------------------------
worldlove.out
myfriends.out
abcdefgh.out
------------------------------
所以应该是10。

8.3文件名格式
  xxxxxxxx  .   xxx
  |______|  |   |_|
      8    点号  3
发表于 2004-8-4 13:25:40 | 显示全部楼层
  1. sed -n '/[a-zA-Z0-9_]\{9,\}.[a-zA-Z0-9]\{3\}/p'
复制代码
发表于 2004-8-5 01:05:35 | 显示全部楼层
  1. awk -F. 'length($1)>8'
复制代码
发表于 2004-8-5 12:19:09 | 显示全部楼层
如果文件名包括空格和数字,
sed需要使用:

  1. sed -ne '/[[:print:]]\{9,\}\.[[:print:]]\{3,\}/p'
复制代码

还是awk方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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