Лучший способ сделать, который должен изучить и использовать регулярные выражения, причину в будущем, это сохранит Вас большая проблема, делающая такую вещь.
cat blah.txt | gawk 'match($0, /([^0-9]*)([0-9]+)/, ary) {print ary[1] ary[2]-2}'
Необходимо будет заменить последними 2 переменной сдвига. Необходимо отметить использование gawk
. Насколько я знаю, регулярный awk
не может извлечь группы из регулярных выражений.
Что это действительно делает? Это делает соответствие на $0
, вставление результатов ary
, использование регулярного выражения /([^0-9]*)([0-9]+)/
, который соответствует: ([^0-9]*)
- 0 или больше символов, которые не являются числами и помещают его в первый индекс массива (круглые скобки ответственны за ту вещь, названную, группируясь), затем ([0-9]+)
соответствует ненулевому числу длины (и помещает его как второй элемент массива).
Конечно, это может быть сделано более тщательно продуманным, наряду с некоторой проверкой ошибок, особыми случаями соответствия и т.д. - но я поощряю Вас исследовать это (а именно, регулярные выражения) самостоятельно.
gistfile1.sh
<font face="Helvetica, Arial, sans-serif" size="3"><span style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;"> <br />
<br>
Cheers, <br />
<br>
Abel Braaksma
</span>
</font>
<br />
<br />
<hr style="height:1px;border:none;color:black;background-color:black" />
<table style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;" cellspacing="0" cellpadding="0">
<tr>
<th align="left" style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">From:</th>
<td style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">%from%</td>
</tr>
<tr>
<th align="left" style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">Sent:</th>
<td style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">%datelocal%</td>
</tr>
<tr>
<th align="left" style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">To:</th>
<td style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">%to(name)%</td>
</tr>
<tr>
<th align="left" style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">Cc:</th>
<td style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">%cc(name)%</td>
</tr>
<tr>
<th align="left" style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">Subject: </th>
<td style="font-size:10pt;font-family:Arial, Helvetica, sans-serif;">%subject%</td>
</tr>
</table>
<br />
<br />
excerpt