从相对路径中删除所有路径字符串

时间:2018-09-28 14:08:50

标签: awk sed grep posix

以下字符串在html文件中,该文件是我必须使用的字符串的子集:

content/css/dashboard.css
content/pages/icon-apache.png
content/js/dashboard-commons.js
sbadmin2-1.0.7/bower_components/jquery/dist/jquery.min.js

我正在尝试删除所有路径,只保留文件名,所以就像这样:

dashboard.css
icon-apache.png
dashboard-commons.js
jquery.min.js

我正在尝试找到一种方法,该方法不仅仅涉及一种情况,而是使用sed来代替它,而是一种通用的方法。

简而言之

  • 一个正则表达式,用于在html文件中找到模式(多级目录路径)并将其删除

编辑:我正在寻找一种适用于linux的解决方案,最好不涉及脚本或安装工具。

编辑2 this question部分回答了我的问题。有了此处提供的答案,我现在可以获得路径的最后一部分。但是我仍然在寻找一种正则表达式模式,用于从html文件中提取字符串列表。

编辑3 :根据要求,以下是一些示例:

<link href="sbadmin2-1.0.7/dist/css/sb-admin-2.css" rel="stylesheet">
<link href="content/css/dashboard.css" rel="stylesheet">
<link href="content/css/theme.blue.css" rel="stylesheet">
<script src="sbadmin2-1.0.7/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="sbadmin2-1.0.7/bower_components/flot/excanvas.min.js"></script>
<script src="sbadmin2-1.0.7/bower_components/flot/jquery.flot.js"></script>

2 个答案:

答案 0 :(得分:1)

完整路径

$ awk -F/ '{print $NF}' file

dashboard.css
icon-apache.png
dashboard-commons.js
jquery.min.js

来自HTML

$ awk -F'"' '/<link|script/{n=split($2,a,"/"); print a[n]}' file.html

sb-admin-2.css
dashboard.css
theme.blue.css
bootstrap.min.js
excanvas.min.js
jquery.flot.js

假设每行一个链接/脚本标签。

答案 1 :(得分:-2)

您应该为此使用基本名称

J.F。

basename content/css/dashboard.css

给予

dashboard.css