2012-05-10 152 views
0

的最后一个字段拆我有不同的路线,一些文件象下面这样:如何完整路径

./a/b/c/test.h 
./d/e/f/g/h/abc1.c 
./i/j/k/l/m/n/o/p/hello.log 
... 

而且我想只有每一个文件名。即:我想要“test.h”,“abc1.c”,“hello.log”。

由于路线的深度并不确定,所以awk可能无法帮助我解决问题。 任何人都可以帮助我吗?

+3

'男人basename'? –

+0

是的,谢谢大家! basename是我想要的确切命令! – zhaojing

回答

2

可以使用basename命令:

while read line 
do 
basename $line 
done < "myfile" 
+0

我还没有听说过basename命令,我会谷歌关于它。谢谢! – zhaojing

+0

非常感谢!这正是我想要的:-) – zhaojing

0

basename往往是这样做的方法,但这里是你如何能做到这一点在AWK:

filename=./i/j/k/l/m/n/o/p/hello.log 
echo "$filename" | awk -F/ '{print $NF}' 

另:

awk -v filename="$filename" 'BEGIN {len = split("/", filename, a); print a[len]}' 

in pure Bash:

echo ${filename##*/} 
0
awk -F"/" '{print $NF}' file_name