2012-05-10 149 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