在Linux/Unix上Bash读取逗号分隔的CSV文件
时间:2020-01-09 10:45:54 来源:igfitidea点击:
如何在UNIX/Linux/BSD/MacOS bash脚本下读取逗号分隔的CVS文件?
我的示例文件如下:FirstName LastName,DOB,SSN,Telephone,Status
如何在Bash中解析CSV文件?
逗号分隔值(CSV)文件是带分隔符的文本文件,使用逗号分隔值。
CSV文件以纯文本格式存储表格数据。
文件的每一行都是一个数据记录。
您可以使用while shell循环读取逗号分隔的cvs文件。
IFS变量会将cvs设置为,
(逗号)。
读取命令将读取每一行并将数据存储到每个字段中。
让我们看看如何在Linux,macOS,* BSD或者类似Unix的操作系统下运行的Bash中解析CSV文件。
Bash读取逗号分隔的CSV文件
语法如下,短语为一个名为input.csv的CSV文件:
while IFS=, read -r field1 field2 do echo "$field and $field2" done < input.csv
如何在Bash中解析CSV文件
使用文本编辑器(例如vim命令/nano命令)创建一个名为test.sh的文件:
vim test.sh
追加以下代码:
#!/bin/bash # Purpose: Read Comma Separated CSV File # Author: under GPL v2.0+ # ----------------------------------------- INPUT=data.cvs OLDIFS=$IFS IFS=',' [ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } while read flname dob ssn tel status do echo "Name : $flname" echo "DOB : $dob" echo "SSN : $ssn" echo "Telephone : $tel" echo "Status : $status" done < $INPUT IFS=$OLDIFS
通过设置执行权限,按如下所示运行test.sh文件shell脚本:
chmod +x test.sh ./test.sh bash test.sh sh test.sh
在Bash中解析CSV文件
CSV应用程序支持
电子表格和数据库管理系统(包括LibreOffice Calc和Apache OpenOffice Calc)都支持CSV文件格式。
导入和导出CSV文件
如何在calc中打开/导入文本CSV文件
人们也可以使用GUI应用读取逗号分隔的CSV文件。
- 开始计算
- 选择"文件">"打开"。
- 找到您要打开的CSV文件。
- 如果文件的扩展名为* .csv,请选择该文件。
- 点击"打开"。
- 将打开"文本导入"对话框。
- 指定将文件中的文本分为几列的选项。
- 点击"确定"。
许多Linux和Unix命令行实用程序(例如,剪切,粘贴,联接,排序,uniq,awk,sed)可以在逗号分隔符上分割文件,因此可以处理简单的CSV文件。
例如:
awk -F',' '{ print " " }'