从文件路径中提取目录路径

时间:2017-08-23 15:31:53

标签: awk sed

我需要获取应该从字符串末尾读取的字符串的一部分。如下所示:

a/b/c/d.txt

现在我希望输出为/a/b/c/ - 基本上是文件的路径。为此,我希望从结尾读取字符串,并在第一个/出现的位置,它打印到字符串的第一个文本。

4 个答案:

答案 0 :(得分:1)

如果您有单个变量,那么参数扩展如何。 假设我们使用您提供的值跟随A变量。

echo $A
a/b/c/d.txt

然后,可以使用参数扩展为您提供文件的路径名。

echo ${A%/*}/
a/b/c/

答案 1 :(得分:0)

这应该通过参数扩展完成,如@ RavinderSingh13的非常好的答案或dirname正如@aragaer所建议的那样,但是如果你对awk解决方案很感兴趣,你可以做类似的事情:

echo "a/b/c/d.txt" | awk -F"/" '{ for (f=1;f<NF;f++){printf "%s/", $f}; printf "\n"}' 

但是当你可以echo $(dirname "a/b/c/d.txt")/

时,这太可怕了

答案 2 :(得分:0)

简单 sed 方法:

echo "a/b/c/d.txt" | sed 's~/[^/]*$~/~'
a/b/c/

答案 3 :(得分:0)

echo a/b/c/d.txt | awk -F/ '{$NF=""}1' OFS=/
a/b/c/