首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分开,但只保留几个分隔符

分开,但只保留几个分隔符
EN

Stack Overflow用户
提问于 2021-04-19 20:20:05
回答 2查看 114关注 0票数 2

我有一个大文件,其中第一列是以下格式。可以用"_“隔开3-6个不同的id

代码语言:javascript
复制
s1_asd_ucsd
b4_asd_id_vu
c10_id_js_uw
d4_sch_vu

我想把这一栏分成两栏。列2包含最后一个id,第1列包含初始id;类似于下面

代码语言:javascript
复制
s1_asd  ucsd
b4_asd_id   vu
c10_id_js   uw
d4_sch  vu

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

代码语言:javascript
复制
awk '{n=split($1, b, "_"); }{  print b[n]}'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-19 20:24:30

您所展示的样品,请您试一试。用GNU awk编写和测试,应该可以在任何awk中工作。

代码语言:javascript
复制
awk 'match($0,/.*_/){print substr($0,RSTART,RLENGTH-1),substr($0,RSTART+RLENGTH)}' Input_file

简单的解释是:使用awkmatch函数在每一行中匹配直到最后一次出现_,然后在打印其子字符串时,在最后一个_之前打印删除它,然后打印行的其余部分(以及匹配的部分和rest部分之间的空格)。

票数 3
EN

Stack Overflow用户

发布于 2021-04-19 21:34:59

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

代码语言:javascript
复制
sed -E 's/(.+)_(.+)/\1   \2/' file

s1_asd    ucsd
b4_asd_id    vu
c10_id_js    uw
d4_sch    vu
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67168828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档