【发布时间】:2012-10-19 12:49:30
【问题描述】:
我正在尝试查找扩展名为 sh、xls 等的文件,如下面的 FILTER 变量所示。
以下是 ls -ltr 的输出,下面脚本的输出是 hourly_space_update.sh 和 kent.ksh,但我不想要 .ksh 文件,请你告诉我哪里出错了我的正则表达式。
[root@SVRVSVN ~]# ls -ltr
total 20
-rw-r--r-- 1 root sqaadmin 44 Oct 9 18:24 hourly_space_update.sh
-rw-r--r-- 1 root sqaadmin 0 Oct 30 12:34 kent.ksh
-rw-r--r-- 1 root sqaadmin 0 Oct 30 12:34 a.abc
-rw-r--r-- 1 root sqaadmin 0 Oct 30 13:02 hh.h
#!/bin/sh
ls -ltr | awk '
BEGIN {
FILTER=".(sh|xls|xlsx|pdf)$"
}
{
for (i = 1; i < 9; i++) $i = ""; sub(/^ */, "");
if(match(tolower($1),FILTER))
{
print $1
}
}'
【问题讨论】:
-
记住'.'并不意味着正则表达式中的“点”。它的意思是“任何字符”