gpt4 book ai didi

Linux:修复文件的输出内容

转载 作者:太空狗 更新时间:2023-10-29 11:24:44 26 4
gpt4 key购买 nike

真的需要你的帮助。我有一个文件,其中一行包含(字段:值)之类的数据

文件.A

A:13 B:2 D:5 F:92 G:3 ...

我创建了一个包含“A to Z”的文件。

文件.B

A B C D E F G H I J ...

并尝试使用 bash 脚本获取内容并修复将插入值为 0 的未命中行的输出。

A:13 B:2 C:0 D:5 E:0 F:92 G:3 H:0 ...

想了两天.. 但还是想不出来。有什么办法可以解决吗?

最佳答案

让大括号扩展起作用:{A..Z} 扩展为所有字母列表:

$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

然后我们可以遍历所有行 greping。如果匹配,我们打印该行;否则,我们打印 letter:0

for letter in {A..Z}
do
grep "^$letter" file || echo "$letter:0"
done

测试

$ for letter in {A..Z}; do grep "^$letter" file || echo "$letter:0"; done
A:13
B:2
C:0
D:5
E:0
F:92
G:3
H:0
I:0
J:0
K:0
L:0
M:0
N:0
O:0
P:0
Q:0
R:0
S:0
T:0
U:0
V:0
W:0
X:0
Y:0
Z:0

现在您更新了问题并且输入文件包含同一行中的所有内容,您可以使用此 grep 来匹配:

grep -o "$word:[0-9]*" file

然后用空格替换新行:

$ for word in {A..Z}; do grep -o "$word:[0-9]*" file || echo "$word:0"; done | tr '\n' ' '
A:13 B:2 C:0 D:5 E:0 F:92 G:3 H:0 I:0 J:0 K:0 L:0 M:0 N:0 O:0 P:0 Q:0 R:0 S:0 T:0 U:0 V:0 W:0 X:0 Y:0 Z:0

关于Linux:修复文件的输出内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23683565/

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