我有一个如下所示的 csv 文件
NameColumn1;NameColumn2;NameColumn3;NameColumn4
Row1;Row1;Row1;Row1;
Row2;Row2;Row2;Row2;
Row3;Row3;Row3;Row3;
Run Code Online (Sandbox Code Playgroud)
我想从NameColumn1中取出Row1,Row2和Row3中的值并将它们放入数组中,对于NameColumn2,NameColumn3和NameColumn4也是如此。
我不知道有多少行,但我知道列数。有什么帮助吗?
谢谢。
使用-a内置的选项/标志read。
#!/usr/bin/env bash
while IFS=';' read -ra array; do
ar1+=("${array[0]}")
ar2+=("${array[1]}")
ar3+=("${array[2]}")
ar4+=("${array[3]}")
done < file.csv
printf '%s\n' "${ar1[@]}" "${ar2[@]}" "${ar3[@]}" "${ar4[@]}"
Run Code Online (Sandbox Code Playgroud)
假设你有四列
while read a b c d; do
ar1+=($a)
ar2+=($b)
ar3+=($c)
ar4+=($d)
done < <(sed 's/;/\t/g' somefile.txt)
Run Code Online (Sandbox Code Playgroud)
然后,您将拥有名为 ar1 到 ar4 的 4x 数组,其中包含列值。
| 归档时间: |
|
| 查看次数: |
16139 次 |
| 最近记录: |