如何才能将TAB添加到最后一列的每一行?

时间:2015-03-03 19:13:50

标签: awk sed tabs

如何将TAB添加到最后一列中的每一行,并保持其余部分不受影响?

之前:

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

1 个答案:

答案 0 :(得分:1)

您可以使用awk执行此操作:

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

将最后一个字段保存到变量s中。减少NF,以便从$0中删除最后一个字段。打印$0,然后是制表符,后跟最后一个字段。

使用GNU sed,这是另一种保留行中先前标签的方法:

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

它贪婪地匹配线上最后一个空格的所有内容,捕获前后的内容。替换是第一部分,后面是制表符,后面是最后一部分。