我有一些不同路径的文件,如下所示:
./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无法解决我的问题。 任何人都可以帮我这个吗?
答案 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