【问题标题】:Replace HTML tags with newline using awk or sed使用 awk 或 sed 将 HTML 标记替换为换行符
【发布时间】:2013-11-03 11:13:11
【问题描述】:

我有一个大文件,没有换行符或回车符。该文件来自 HTML,除了我想要转换为换行符 (/n) 的标签之外,我已经删除了所有标签。使用 AWK 或 SED 有什么快速简便的方法来做到这一点?我想 AWKSED 也是一种选择。

【问题讨论】:

  • 告诉我真的没有什么东西叫AWKSED!!!!发布一些示例输入和预期输出。

标签: html windows sed awk newline


【解决方案1】:

这样的事情应该可以工作:

sed 's/<[^>]*>/\n/g' file

这意味着:用换行符替换所有以&lt; 开头的文本,后跟不定数量的不是&gt; 的字符,以及以&gt; 结尾的字符。

【讨论】:

  • 所以如果我把 /tr 放在括号里,它应该用换行符替换所有出现的那个标签?
  • 是的,由于g 命令和[^&gt;] 进行非贪婪匹配,这将使用换行符更新所有匹配项
  • 我对您的更改感到有些困惑。如果标签是 /tr,我在你的解决方案中用 /tr 替换什么? ^> 或 *?
  • @DominicRomano 我添加了一个解释它是如何工作的。我假设标签是&lt;/tr&gt;而不是/tr,所以它会与我发布的命令匹配(我最初的答案是贪婪匹配,所以它只适用于行中的单个标签)
  • @DominicRomano 我刚刚注意到你已经用[windows] 标记了这个问题。如果是这种情况,也许您应该使用将\n 识别为换行符的编辑器打开输出,或者将命令更改为sed 's/&lt;[^&gt;]*&gt;/\r\n/g' file
猜你喜欢
  • 2016-03-13
  • 2021-10-25
  • 2016-10-29
  • 2018-05-24
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
相关资源
最近更新 更多