如何拆分完整路线的最后一个字段

时间:2012-05-10 06:43:34

标签: shell awk

我有一些不同路径的文件,如下所示:

./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 个答案:

答案 0 :(得分:2)

您可以使用basename命令:

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

答案 1 :(得分: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]}'
纯粹的Bash中的

echo ${filename##*/}

答案 2 :(得分:0)

awk -F"/" '{print $NF}' file_name