如何将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
答案 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
它贪婪地匹配线上最后一个空格的所有内容,捕获前后的内容。替换是第一部分,后面是制表符,后面是最后一部分。