假设我在一行txt文件中有一个路径和文件名。下面是示例
folder / folder1 / folder2 / folder3 / filename.txt
现在,我想获取整个路径,以便可以到达文件。我可以通过使用awk来获取文件名,该awk以相反的顺序(使用NF)由第一个“ /”读取分隔。但不确定如何获得完整路径。
我的输出应包含 文件夹/文件夹1 /文件夹2 /文件夹3
答案 0 :(得分:0)
实际上,您可以通过多种方式来做到这一点...
假设您在名为line
的var中添加了一行文本。
根据@Cyrus的建议,您可以使用:
dirname "${line}"
请注意,这将是一个相对路径,就像在txt文件中提供它一样。 (relative vs absolute path )
如果需要完整路径,可以使用:
line="$(readlink -f "${line}")"
printf "%s" "${line##*/}"
请注意,dirname
和readlink
都是二进制文件,不是bash内置的文件,因此它们无法在某些系统上运行(例如macOS)。
在这种情况下,您可以使用brew install coreutils
安装coreutils
。 (您可以冲泡here。)
但是,如果您希望便携性,可以认为它们是便携式的。
希望这会有所帮助。