gpt4 book ai didi

awk - 拆分但保留分隔符很少

转载 作者:行者123 更新时间:2023-12-05 08:47:39 25 4
gpt4 key购买 nike

我有一个大文件,第一列的格式如下。可以有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]}'

最佳答案

根据您展示的示例,您能否尝试以下操作。使用 GNU awk 编写和测试,应该可以在任何 awk 中使用。

awk 'match($0,/.*_/){print substr($0,RSTART,RLENGTH-1),substr($0,RSTART+RLENGTH)}' Input_file

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

关于awk - 拆分但保留分隔符很少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67168828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com