需要命令打印文件名但不打印前面的目录路径

时间:2016-03-01 16:58:32

标签: bash directory

目前打印出filename

我只是希望它打印出tr"没有"目录路径。

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

这个问题非常模糊,但假设你有一个像

这样的Bash命令
echo "$path"

您可以使用

打印文件名
echo "${path##*/}"

echo与变量字符串一起使用时可能会出现意外情况,因此更好的选择是

printf '%s\n' "${path##*/}"

答案 1 :(得分:0)

我真的不明白你想做什么,但是

ls /path/to/files > /path/to/output

假设您在目录中有3个单独的文本文件,上面将在一行中将每个文件名的所有3个文件组合在一起而没有实际路径。

希望有所帮助

Bash替代

for file in /path/to/files/*.txt; do
 echo ${file##*/} >> /path/to/output/filename.txt
done

答案 2 :(得分:0)

使用basename就像这样:

shortpath=$(pwd)
basename "$shortpath"

答案 3 :(得分:0)

我能够使用awk

完成此任务

| awk'{(n = split($ 18,a,“/”));打印$ 6,$ 10,$ 8,a [n],“\ n”}'> /sometextfile.txt

“\ n”是因为我在结果之间需要一个空行。