我有一个包含以下内容的文件:
<tr><td>CLNK </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115061</td><td> 9965
<tr><td>CLNM </td><td>TR-HEH-JFGHG-MTG-N-JK-00 </td><td> 841115062</td><td> 9976
<tr><td>CLNKHGKSL </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115063</td><td> 9985
<tr><td>CLNK </td><td>TR-HEH-JFGHG-CRD-N-TR-00 </td><td> 841115064</td><td> 9925
<tr><td>CLNK00 </td><td>TR-HEH-JFGHG-CCS-N-HJ-00 </td><td> 841115065</td><td> 9905
<tr><td>CLNKTYH </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115066</td><td> 9915
<tr><td>CLNKVB </td><td>TR-HEH-JFGHG-MTG-N-MN-00 </td><td> 841115067</td><td> 9935
<tr><td>CLN </td><td>TR-HEH-JFGHG-PLN-N-US-00 </td><td> 841115068</td><td> 9955
<tr><td>CLNK1 </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115069</td><td> 9970
我想要基于第 5 列值的以下输出,如果第 5 个字段值 >9960 那么它将用下面的字符串替换部分
<tr><td>CLNK </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115061</td><td bgcolor="red"> 9965
<tr><td>CLNM </td><td>TR-HEH-JFGHG-MTG-N-JK-00 </td><td> 841115062</td><td bgcolor="red"> 9976
<tr><td>CLNKHGKSL </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115063</td><td bgcolor="red"> 9985
<tr><td>CLNK </td><td>TR-HEH-JFGHG-CRD-N-TR-00 </td><td> 841115064</td><td> 9925
<tr><td>CLNK00 </td><td>TR-HEH-JFGHG-CCS-N-HJ-00 </td><td> 841115065</td><td> 9905
<tr><td>CLNKTYH </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115066</td><td> 9915
<tr><td>CLNKVB </td><td>TR-HEH-JFGHG-MTG-N-MN-00 </td><td> 841115067</td><td> 9935
<tr><td>CLN </td><td>TR-HEH-JFGHG-PLN-N-US-00 </td><td> 841115068</td><td> 9955
<tr><td>CLNK1 </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115069</td><td bgcolor="red"> 9970
答案1
如果我们可以安全地假设您感兴趣的值始终是每行的最后一段数字(如您的示例中的情况),您可以执行以下操作:
$ perl -pe 'm|.*(<td>\s*(\d+)\s*(</td>)?\s*)$|;
$cell=$1;
$value=$2;
if($value > 9960){
s|$cell|<td bgcolor="red">$value</td>\n|
}' file
<tr><td>CLNK </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115061</td><td bgcolor="red">9965</td>
<tr><td>CLNM </td><td>TR-HEH-JFGHG-MTG-N-JK-00 </td><td> 841115062</td><td bgcolor="red">9976</td>
<tr><td>CLNKHGKSL </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115063</td><td bgcolor="red">9985</td>
<tr><td>CLNK </td><td>TR-HEH-JFGHG-CRD-N-TR-00 </td><td> 841115064</td><td> 9925
<tr><td>CLNK00 </td><td>TR-HEH-JFGHG-CCS-N-HJ-00 </td><td> 841115065</td><td> 9905
<tr><td>CLNKTYH </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115066</td><td> 9915
<tr><td>CLNKVB </td><td>TR-HEH-JFGHG-MTG-N-MN-00 </td><td> 841115067</td><td> 9935
<tr><td>CLN </td><td>TR-HEH-JFGHG-PLN-N-US-00 </td><td> 841115068</td><td> 9955
<tr><td>CLNK1 </td><td>TR-HEH-JFGHG-MTG-N-US-00 </td><td> 841115069</td><td bgcolor="red">9970</td>