如何仅在最后一列中的每一行中添加 TAB?

How can I add a TAB to every line into the very last column only?

我怎样才能只在最后一列的每一行中添加一个制表符,而保持其余部分不变?

之前:

hgege  uezeze  uge   847.884  uehe   76,34 84,89
jewhwehew\theghe..846,65 93,48
jerhewgpwi   wquzqwgfedcf\tjwegew...75,93   83

之后:

hgege  uezeze  uge   847.884  uehe   76,34\t84,89
jewhwehew\theghe..846,65\t93,48
jerhewgpwi   wquzqwgfedcf\tjwegew...75,93\t83

你可以使用 awk 做到这一点:

awk '{s=$NF;--NF;printf "%s\t%s\n",[=10=],s}' file

将最后一个字段保存到变量s中。递减 NF,以便从 [=14=] 中删除最后一个字段。打印 [=14=],然后是制表符,然后是最后一个字段。

使用 GNU sed,这里有一个替代方法,它保留了行中以前的选项卡:

sed -r 's/(.*)[[:space:]]+(.*)/\t/' file

它贪婪地匹配所有内容直到行中的最后一个空格,捕获前后的内容。替换是第一部分,然后是制表符,然后是最后一部分。