基本上,我想将./foo/bar
转换为./foo/bar/bar
。我最初尝试sed,但我想出的正则表达式使用lookdound((?<=s\/)(.*)
)或\K
转义序列(.*\/\K.*
),sed不支持。如何提取基本名称并将其附加到路径
-1
A
回答
3
对于“我怎么追加/name
到/path/to/name
”一般情况下,你可以使用参数扩展:
$ var='./foo/bar'
$ echo "$var/${var##*/}"
./foo/bar/bar
${var##*/}
扩展到$var
与*/
(任何与结束时间最长可能的匹配值从一开始就被删除了。
如果你有每行这些条目中的一个文件,你可以做这样的事情与sed的:
$ cat infile
./foo/bar
./foo/bar/baz
./path/to/file
$ sed 's/\([^/]*\)$/\1\/\1/' infile
./foo/bar/bar
./foo/bar/baz/baz
./path/to/file/file
这对每行的最后/
后捕捉一切,并附加斜杠和捕获序列到行尾。
+0
没有什么比删除子串好的旧*参数扩展*,做得好。 –
+0
@ DavidC.Rankin增加:_mostly_。 :)这个答案对于_most_案件来说很好,很简洁。例如何时不会DWIM:'/ foo/bar /','/ foo/bar //'(例如尾部斜杠)和角落案例如'..'(又名父目录或'./ ..'或'./../'和这种奇异的_(但有效的)_路径。)所以,是的 - 很好的答案 - 但是:_nothing beats_ ..并不完全正确。 ;) – jm666
相关问题
- 1. 将路径附加到路径
- 2. 如何将vue道具数据附加到图像源的基本路径
- 3. 获取路径和附加文件名
- 4. iOS - 为文件使用基本名称并附加扩展名
- 5. 获取该字符串并将其附加到变量名称之前
- 6. 如何将文本添加到路径
- 7. 获取Windows路径的基本名称在Linux中
- 8. AngularJS - templateUrl路径附加到href路径
- 9. 如何提取路径的文件名
- 10. 如何找到根路径名称
- 11. 如何从路径中提取每个文件夹的名称?
- 12. 如何仅从路径中提取文件/文件夹名称?
- 13. 将url附加到图像路径NSString?
- 14. 如何附加到路径,如果没有附加
- 15. 如何从日志文件中提取IP地址并将其附加到URL?
- 16. 如何从其路径中提取文件名vba
- 17. JQuery提取表单输入名称并将其作为类添加到输入
- 18. 如何从JavaScript中的数组中获取文本并将其附加到texarea?
- 19. SevenZipSharp - 将文件附加到zip并删除文件路径
- 20. 连接路径和基名称
- 21. 如何获取React路由器基本名称
- 22. 如何将employeeID附加到文件路径?
- 23. 如何将库路径中的空格附加到LD_PRELOAD?
- 24. 如何将日期字符串附加到文件夹路径?
- 25. 如何附加分支名称并提交到git归档输出文件?
- 26. 如何将附加域名重定向到其域名?
- 27. 如何读取文本文件的路径,并在该路径
- 28. Eclipse PDT将项目名称添加到虚拟主机路径
- 29. 如何将python3别名到旧路径?
- 30. 如何加快删除名称提取
对于具有该内容的单个变量?像这样的许多行的文件? –
@Benjamin W.它用于find命令的输出:find。 -mindepth 2 -type d! - 路径。 ! -path ./foo – user3044148
即使不会谈论你**代码的缺失部分,问题描述也是模糊的。当路径是下列之一时会发生什么?:'/'或'.'或'..'或'./ ..'等等?要么? './qoo/qxx /../../../一些/异国/美容/../'。 – jm666