gpt4 book ai didi

awk - 在具有变量 NF 的文件中的特定字段之后连接所有字段

转载 作者:行者123 更新时间:2023-12-05 08:15:43 24 4
gpt4 key购买 nike

我有这样一个文件:

ID1 as;uh;2
ID2 uh;3 jk PASS
ID3 PASS
ID4 as;uh;PASS kk;3 rt
ID5 as
ID6 PASS PASS uh 3;4
ID7 jk;34 hy

我想在第一个字段之后连接所有字段,用 | 分隔它们并得到以下内容:

ID1 as;uh;2
ID2 uh;3|jk|PASS
ID3 PASS
ID4 as;uh;PASS|kk;3|rt
ID5 as
ID6 PASS|PASS|uh|3;4
ID7 jk;34|hy

我正在尝试这样的事情,但我不确定如何在第一列之后自动连接所有列,而不是手动指示列数(因为在我的真实文件中,有些行存在超过 15 个字段)。

awk -v OFS='\t' '{ $2=$2"|"$3"|"$4;    #merge cols after the first one   
for (i=3;i<NF;i++) $(i)=""} 1' #remove cols after 2nd one and print it

你知道我怎样才能实现它吗?

最佳答案

使用 GNU sed:

$ sed 's/ /|/2g' ip.txt
ID1 as;uh;2
ID2 uh;3|jk|PASS
ID3 PASS
ID4 as;uh;PASS|kk;3|rt
ID5 as
ID6 PASS|PASS|uh|3;4
ID7 jk;34|hy

2g 只会从第二个匹配项开始替换。

关于awk - 在具有变量 NF 的文件中的特定字段之后连接所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73471108/

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