gpt4 book ai didi

awk - 在 text.file 中切换列

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

我有这样的 file.txt


4142 2019-01-08T.002:00 JrNewman 080592Kl Developer
2125 2016-11-455.+02:00 Jackson John 180784SRE1 Maintainer
2293 2016-12-4100+02:00 Jackson John AZbissness Developer
1938 2015T12:1600+02:00 Jackson John AZ19043A4A Developer
2126 2016-123:46.003:00 Jackson John OZ40784SA3 Maintainer
2033 201615:33:28.00:00 Allen Robert JR pDbissness Developer
4846 202212:48:34+02:00 Walker Tom JR autotestbit Maintainer
5362 2022-12:440+302:00 Walker Tom Jr autotestbit Maintainer
2131 2012T21:.000+03:00 Allen Robert Jr Z1EW843V1 Maintainer
2128 2013T206.000+02:00 Administrator LL23042DE Guest

需要这样的东西

4142 2019-01-08T.002:00 080592Kl Developer JrNewman
2125 2016-11-455.+02:00 180784SRE1 Maintainer Jackson John
2293 2016-12-4100+02:00 AZbissness Developer Jackson John
1938 2015T12:1600+02:00 AZ19043A4A Developer Jackson John
2126 2016-123:46.003:00 OZ40784SA3 Maintainer Jackson John
2033 201615:33:28.00:00 pDbissness Developer Allen Robert JR
4846 202212:48:34+02:00 JR autotestbit Maintainer Walker Tom
5362 2022-12:440+302:00 autotestbit Maintainer Walker Tom Jr
2131 2012T21:.000+03:00 Z1EW843V1 Maintainer Allen Robert Jr
2128 2013T206.000+02:00 LL23042DE Guest Administrator

我知道我可以使用 awk print $column 并写入文件。但我做不到((

最佳答案

使用您展示的示例,请尝试遵循 awk 代码。用 GNU awk 编写和测试,应该可以在任何 awk 中使用。简单的解释是使用 match 函数首先在 val1 变量中获取前 2 个字段,并在 len 变量中获取其长度。然后使用另一个 match 匹配最后 2 个字段,然后打印前 2 个字段、最后 2 个字段以及所有其余名称值之间(可以是单个值或 2 个值等等)。

awk '
match($0,/^[^[:space:]]+[[:space:]]+[^[:space:]]+[[:space:]]+/){
val1=substr($0,RSTART,RLENGTH)
len=RSTART+RLENGTH
}
match($0,/[^[:space:]]+[[:space:]]+[^[:space:]]+$/){
print val1 substr($0,RSTART,RLENGTH),substr($0,len,RSTART-len)
}
' Input_file

关于awk - 在 text.file 中切换列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72782093/

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