字符串和sed的两个问题提问.

字符串和sed的两个问题提问.

问题一,找出当前目录下文件扩展名为.c的文件
#!/bin/bash
FILENAME=`ls -l`
for FILE in FILENAME
do [B]
    if [ $FILE = "*.c" ];then[/B]
        echo $FILE
    fi
done
显示为空,怎么改?
问题二
sed -e 's/printf\test/g' main.c >main.c.bak
这个时候会把main.c文件中的fprintf也替换成ftest.如何精确匹配呢?      
复制内容到剪贴板
代码:
[color=blue]-(guest@mac:tty1)-(tmp)-
[10973 0] %[/color] for i in *.c; do echo $i; done
foo.c
struct.c
[color=blue]-(guest@mac:tty1)-(tmp)-
[10973 0] %[/color] echo "abcabc abc" | sed -e 's/\<abc/ABC/g'
ABCabc ABC
[color=blue]-(guest@mac:tty1)-(tmp)-
[10973 0] %[/color]
      
如果要改if [ $FILE = "*.c" ];then
这个那么=号的右边应该匹配什么呢?      
复制内容到剪贴板
代码:
[color=blue]-(guest@mac:tty1)-(tmp)-
[9444 0] %[/color] l
total 16
-rw-r--r--   1 clark  clark     0 31 May 19:58 a.c
-rw-r--r--   1 clark  clark     0 31 May 19:58 b.c
drwxr-xr-x  74 clark  clark  2516 25 May 22:00 mysql-4.1.12
-rw-r--r--   1 clark  clark  6167 28 May 09:49 tux_list
[color=blue]-(guest@mac:tty1)-(tmp)-
[9444 0] %[/color] for i in *; do if [[ $i == *.c ]]; then echo $i; fi; done
a.c
b.c
[color=blue]-(guest@mac:tty1)-(tmp)-
[9444 0] %[/color]