首页 > 解决方案 > 拆分但保留几个分隔符

问题描述

我有一个大文件,第一列的格式如下。可以有 3-6 个不同的 id,用“_”分隔

s1_asd_ucsd
b4_asd_id_vu
c10_id_js_uw
d4_sch_vu

我想将此列拆分为两列。第 2 列包含最后一个 id,第 1 列包含初始 id;像下面这样

s1_asd  ucsd
b4_asd_id   vu
c10_id_js   uw
d4_sch  vu

我知道如何通过以下方式打印最后一列;但不知道如何在保留分隔符的同时打印以前的 id。

awk '{n=split($1, b, "_"); }{  print b[n]}'

标签: awksplit

解决方案


sed使用贪心匹配模式的简单解决方案:

sed -E 's/(.+)_(.+)/\1   \2/' file

s1_asd    ucsd
b4_asd_id    vu
c10_id_js    uw
d4_sch    vu

推荐阅读