Awk 从相对路径中删除所有路径字符串
以下字符串位于html文件中,该文件是我必须处理的字符串的子集:Awk 从相对路径中删除所有路径字符串,awk,sed,grep,posix,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-com
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文件中查找模式(多级目录路径)并将其删除的正则表达式
<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>
您应该使用basename J.F 给予 从完整路径
$ 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
$awk-F'“''/对不起,我看不出这是如何回答我的问题的BaseName内容/css/dashboard.css为您提供了dashboard.css所需的内容。相反,我有一个包含100个字符串的列表,类似这样的字符串,基本名称不会重复。你的建议是有100个替换命令,每个基名称一个,对吗?如果是这样的话,我说这不是我想要的。你也可以通过rev | cut-d/-f1 | rev
来传输数据。对于HTML问题,你必须给我们提供一个示例,以便我们知道这些字符串的来源。他们是其中的一部分,或者他们来自哪里。为什么不考虑删除RE不需要的东西?例如,对于sed:sed's:.*/:'
,您还需要一个正则表达式来解析HTML。“你可能会遇到那匹小马。”托尔这是我问这个问题的初衷。但我对sed/awk/grep不太熟悉,无法找到最适合这份工作的正则表达式。
$ awk -F/ '{print $NF}' file
dashboard.css
icon-apache.png
dashboard-commons.js
jquery.min.js
$ 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