从代码中提取数字

时间:2016-02-09 17:42:51

标签: bash awk

我有以下代码,我需要获取数字并将它们保存在一行中,

<div class="F-temperatura">
<p>Temperatura: <span class="min">5º</span><span
class="max">14º</span>
--
<div class="F-temperatura">
<p>Temperatura: <span class="min">4º</span><span
class="max">12º</span>
--
<div class="F-temperatura">
<span class="min">2º</span><span class="max">11º</span>
</div>
--
<div class="F-temperatura">
<span class="min">2º</span><span class="max">12º</span>
</div>
--
<div class="F-temperatura">
<span class="min">8º</span><span class="max">16º</span>
</div>
--
<div class="F-temperatura">
<span class="min">2º</span><span class="max">10º</span>
</div>

我需要

5,14,4,12,2,11,2,12,8,16,2,10

我使用此命令获取数字5,在这种情况下,我的文件名为dada.txt

awk 'NR == 2' dada.txt | cut -d '<' -f 3 | cut -d '>' -f 2 | tr -d 'º'

它运作良好,例如我得到了数字5,...但是如果我必须提取很多数字是一项繁琐的工作,因为我必须修改NR的最低温度和更多的最高温度......任何想法在bash中以更清洁,更快捷的方式获取它们?

最佳

1 个答案:

答案 0 :(得分:2)

试试这个,提取没有上下文的所有数字,每行一个

grep -oE "[0-9.]+" file

如果您希望以逗号分隔,请输入... | paste -sd,