相关疑难解决方法(0)

在不知道字段数的情况下在换行符上打印 CSV 的每个字段

我今天在玩 IFS 并创建了一个快速文本文件,其中包含在 1 行上用逗号分隔的数字列表。

1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

然后我尝试编写一个脚本来在换行符上打印每个数字。我能够让它发挥作用,但我必须知道有多少字段。我试图弄清楚如何在一个更长的列表上执行此操作,我不想指定每个字段。

#!/bin/bash
IFS=,
while read num1 num2 num3 num4 num5
do
printf $num1"\n"
printf $num2"\n"
printf $num3"\n"
printf $num4"\n"
printf $num5"\n"
printf "\n"
done < "$1"
Run Code Online (Sandbox Code Playgroud)

这给了我输出:

keismbp13b:tmp$ ./ifs.sh list
1
2
3
4
5
keismbp13b:tmp$
Run Code Online (Sandbox Code Playgroud)

我想我可能必须使用 awk 或类似的东西来将列表分隔到换行符,但我很好奇是否有另一种方法。

谢谢!

发布后我也意识到我可以做到这一点

tr , "\n" < list
Run Code Online (Sandbox Code Playgroud)

无论如何要在不首先分离列表的情况下执行此操作?

bash text-processing csv-simple

7
推荐指数
1
解决办法
8920
查看次数

标签 统计

bash ×1

csv-simple ×1

text-processing ×1