gpt4 book ai didi

macos - BASH 列表搜索 Awk

转载 作者:行者123 更新时间:2023-11-29 09:31:59 25 4
gpt4 key购买 nike

我对编写脚本和尝试在 bash 中解决问题还很陌生。我有一个数据文件,其中包含如下所示的信息:

2   aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111   aaaa    1111    [1] 1   
4 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
8 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
10 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
12 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaaa.aaa 11111 aaaa 1111 [1] 1
14 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
16 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaaa.aaa 11111 aaaa 1111 [1] 1
18 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
20 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaaa.aaa 11111 aaaa 1111 [1] 1
24 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaaa.aaa 11111 aaaa 1111 [1] 1
26 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaaa.aaa 11111 aaaa 1111 [1] 1
28 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
30 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
32 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaaa.aaa 11111 aaaa 1111 [1] 1

其中 *a 代表各种字母,1 代表各种数字。

所有列表都应该从 2 垂直下降到 32,以 2 为单位计数,但是很多列表都缺少几个组件,例如我在上面发布的那个缺少 6 和 22。我正在尝试要做的是编写一个脚本,检查每个数字是否存在,如果不存在,则在前面添加一行数字,后面没有其他内容,这样您就可以:

2   aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111   aaaa    1111    
[1] 1
4 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
6

8 aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aa11_1.aaa aaaa.aaa 11111 aaaa 1111 [1] 1
...

据我所读,我相信 AWK 函数最有可能成功,但我不确定如何让它发挥作用。谢谢!

最佳答案

此 awk 基于 2-32(按两个)条目的输出索引范围:

awk '{a[$1]=$0} END {for(i=2;i<=32;i+=2) print (i in a ? a[i] : i)}' data

分割:

  • 按索引将所有现有行存储在数组中
  • END 处,遍历所有已知索引 (2-32) 并打印该行或缺失的索引

关于macos - BASH 列表搜索 Awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270231/

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