假设我在一行txt文件中有一个路径和文件名。下面是的例子
folder/folder1/folder2/folder3/filename.txt
现在我想得到整个路径,这样我就可以访问该文件。我可以通过使用awk获得文件名,该文件名由第一个"/"以相反的顺序读取(使用NF(分隔。但不确定如何获得完整的路径。
我的输出应该包含文件夹/文件夹1/文件夹2/文件夹3
实际上,您可以通过多种方式来实现。。。
让我们假设您在一个名为line
的var中有一行文本。
根据@Cyrus的建议,您可以使用:
dirname "${line}"
请注意,这将是一个相对路径,就像您在txt文件中提供的那样。(相对路径与绝对路径)
如果你需要一个完整的路径,你可以使用:
line="$(readlink -f "${line}")"
printf "%s" "${line##*/}"
请注意,dirname
和readlink
都是二进制文件,并且不是bash中的内置文件,因此它们不能在某些系统(例如macOS(上工作。在这种情况下,可以使用brew install coreutils
安装coreutils
。(你可以在这里买到啤酒。(
然而,如果你的目标是便携性,它们可以被认为是便携的。
希望这能有所帮助。