gpt4 book ai didi

linux - 通过 shell 脚本输出编辑 .csv 文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:48 26 4
gpt4 key购买 nike

我有一个脚本,它将 .csv 文件作为输入并逐行运行

kma210,projects.kma210
kma215,projects.kma215_2
KMA3xx,projects.kma3xx
KMI7,projects.kmi7

以上是.csv 文件的示例。我为每一行运行了两种类型的进程(例如:abc_process 和 xyz_process)。

现在我的要求是一旦脚本运行一行,输出即成功/失败应该打印在同一个文件的第三列 (abc_process) 和第四列 (xyz_process)。

示例请看这里:

kma210,projects.kma210,success,success
kma215,projects.kma215_2,fail,success
KMA3xx,projects.kma3xx,success,fail
KMI7,projects.kmi7,fail,fail

谁能推荐一下?

最佳答案

我认为您要实现的目标就是此类。

从您的输入文件 (input.csv),使用如下脚本:-

#!/bin/bash

while IFS=',' read -r col1 col2
do
# The below two read commands are to process the success/fail status
# string as you indicated. If you are receiving a string of the below
# form, from an external bash command; you need to use process-substitution
# as

# IFS= read -r _ p1Status <<(p1Command)
# IFS= read -r _ p1Status <<(p2Command)

IFS= read -r _ p1Status <<<"abc success"
IFS= read -r _ p2Status <<<"xyz fail"

# The below printf just prints the output as you need to stdout
# to create a .csv out of it, append it to a new file as

# printf "%s,%s,%s,%s\n" "$col1" "$col2" "$p1Status" "$p2Status" >> output.csv

printf "%s,%s,%s,%s\n" "$col1" "$col2" "$p1Status" "$p2Status"
done<input.csv

上述命令写入stdout,产生如下输出

kma210,projects.kma210,success,fail
kma215,projects.kma215_2,success,fail
KMA3xx,projects.kma3xx,success,fail
KMI7,projects.kmi7,success,fail

您可以使用 >>> 运算符将其附加到我注释掉的行的文件中。或者,如果您想要单个文件并替换原始文件。添加一行

mv -v output.csv input.csv 

作为脚本的最后一行。

关于linux - 通过 shell 脚本输出编辑 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41000045/

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