【问题标题】:Remove all path string from relative path从相对路径中删除所有路径字符串
【发布时间】:2019-03-04 13:24:23
【问题描述】:

以下字符串位于 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 的解决方案,最好不涉及编写脚本或安装工具。

编辑 2this 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>

【问题讨论】:

  • 对于 HTML 问题,您必须向我们提供一个示例,以便我们知道这些字符串的来源。它们是 的一部分还是来自哪里。
  • 为什么不考虑删除 RE 不需要的内容?例如使用 sed:sed 's:.*/::'
  • 另外,您需要一个正则表达式来解析您的 HTML。 Never parse HTML or XML with a regex你可能会遇到小马。
  • @Thor 这是我提出问题时的意图。但我不熟悉 sed/awk/grep 想出最适合这项工作的正则表达式。

标签: awk sed grep posix


【解决方案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

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

【讨论】:

    【解决方案2】:

    您应该为此使用基本名称

    J.F.

    basename content/css/dashboard.css
    

    给予

    dashboard.css
    

    【讨论】:

    • 抱歉,我看不出这如何回答我的问题
    • basename content/css/dashboard.css 给你你想要的dashboard.css
    • 假设我有一个包含 100 个这样的字符串的列表,并且基本名称不重复。您的建议是有 100 个替换命令,每个基本名称一个,对吗?如果是这样,我说这不是我要找的。​​span>
    • 你也可以通过rev | cut -d/ -f1 | rev管道传输数据。
    猜你喜欢
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2011-04-22
    • 2014-11-24
    相关资源
    最近更新 更多