当前位置: 技术问答>linux和unix
shell 如何判断某个文件名是以某个字符开头的
来源: 互联网 发布时间:2016-03-09
本文导语: shell 如何判断某个文件名是以某个字符开头,谢谢 | [code=BatchFile]$ cat test.sh PATH=/root/hzc/test.txt echo ${PATH} echo ${PATH##*/} $ ./test.sh /root/hzc/test.txt test.txt[/code] | 借楼上的 PATH1=/root/hzc/te...
shell 如何判断某个文件名是以某个字符开头,谢谢
|
[code=BatchFile]$ cat test.sh
PATH=/root/hzc/test.txt
echo ${PATH}
echo ${PATH##*/}
$ ./test.sh
/root/hzc/test.txt
test.txt[/code]
PATH=/root/hzc/test.txt
echo ${PATH}
echo ${PATH##*/}
$ ./test.sh
/root/hzc/test.txt
test.txt[/code]
|
借楼上的
PATH1=/root/hzc/test.txt
filename=${PATH1##*/}
pos=t
if [ `expr match $filename $pos ` -eq 1 ]
then
echo yes !
else
echo no
fi
PATH1=/root/hzc/test.txt
filename=${PATH1##*/}
pos=t
if [ `expr match $filename $pos ` -eq 1 ]
then
echo yes !
else
echo no
fi
|
basename命令可以取得文件名。
|
帮楼上补充一下,%和%%也有类似作用,不过是从后面往前匹配。
而${var/pattern/string}则用来替换。
例子:
TEST=/home/cam/book/long.file.name && echo ${TEST##/*/}
TEST=/home/cam/book/long.file.name && echo ${TEST#/*/}
TEST=/home/cam/book/long.file.name && echo ${TEST%.*}
TEST=/home/cam/book/long.file.name && echo ${TEST%%.*}
推荐《学习bash》一书,有电子版《Learning the bash shell》
而${var/pattern/string}则用来替换。
例子:
TEST=/home/cam/book/long.file.name && echo ${TEST##/*/}
TEST=/home/cam/book/long.file.name && echo ${TEST#/*/}
TEST=/home/cam/book/long.file.name && echo ${TEST%.*}
TEST=/home/cam/book/long.file.name && echo ${TEST%%.*}
推荐《学习bash》一书,有电子版《Learning the bash shell》