| 您的位置:首页 > 文档 > Shell > |
文章分类热门文章 |
打印通配结果创建:2005-10-26 00:49:46 作者:Unlinux 来自: http://www.Unlinux.com B[A-E]Z 怎样分别打印通配结果为:BAZ BBZ BCZ BDZ BEZ(shell 实现) 假定存在文件 BAZ001.ani BBZ001.ani BDZ001.ani BEZ001.ani 当ls B[A-E]Z* 列出文件时,缺少BCZ001.ani,但 ls B[A-E]Z*命令是执行成功的。 为了在后台判断每一文件的存在性我需要 B[A-E]Z 通配后的结果 (BAZ BBZ BCZ BDZ BEZ )分别生成文件,然后按行比较,看哪行是不同的 #!/bin/ksh awk ' BEGIN { for ( i=1; i<=255; ++i ) ord [i] = sprintf("%c",i); for ( i=1; i<=255; ++i ) { c="A" ord[i] "E" if ( c ~ /A[A-Z]E/ ) { print c } } } ' 第一个for循环产生一个长度为255的数组,其内容为相应ascii值所对应的字符。 第二个for循环是生成"c"字符串变量,它的中间一个字符就是上面数组中的元素,if语句 打印出与A[A-Z]E通配的c字符串的值:AAE、ABE、ACE、ADE…… 转载自:http://www.unlinux.com/doc/shell/20051026/252.html 【评论】 【加入收藏夹】 【大 中 小】 【打印】 【关闭】 ※ 相关链接 无相关信息 |