gpt4 book ai didi

linux - 如何基于 shell 脚本中的行创建 CSV 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:05 24 4
gpt4 key购买 nike

我有一个文本文件 /tmp/some.txt 具有以下值

JOHN              YES     6          6            2345762
SHAUN NO 6 6 2345748

我想创建一个具有以下格式的 csv 文件(即基于行。而不是基于列)。

JOHN,YES,6,6,2345762
SHAUN,NO,6,6,2345748

我试过下面的代码

for i in `wc -l /tmp/some.txt | awk '{print $1}'`
do
awk 'NR==$i' /tmp/some.txt | awk '{print $1","$2","$3","$4","$5}' >> /tmp/some.csv
done

这里 wc -l/tmp/some.txt | awk '{print $1}' 将获得值为 2(即文本文件中的 2 行)。对于每一行 awk 'NR==$i'/tmp/some.txt | awk '{print $1","$2","$3","$4","$5}' 会将 5 个字段打印到 some.csv 文件中,文件之间用逗号分隔。

当我分别执行每个命令时,它会起作用。但是当我把它作为一个 shell 脚本时,我得到的是空的 some.csv 文件。

最佳答案

@Kart:请你试试看。

awk '{$1=$1;} 1' OFS=,   Input_file  > output.csv

希望对你有帮助

关于linux - 如何基于 shell 脚本中的行创建 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41549752/

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