Bash读取CSV 文件

CSV文件是使用逗号作为分隔符的文本文件,CSV文件以纯文本格式存储数据,文件的每一行都是一条数据记录。 我们可以使用bash中的while循环来读取CSV文件。IFS变量设置分隔符为,(逗号)。read命令读取每一行并将数据存储到每个字段中。 一个简单的实例 st.sh文件内容如下: while IFS=, read -r fd1 fd2 do echo "$fd1 and $fd2" done < input.csv 我们来运行下st.sh试试: alair@op36 MINGW64 ~/Documents $ cat input.csv bob,18 alair,23 kim,32 alair@op36 MINGW64 ~/Documents $ sh ./st.sh bob and 18 alair and 23 kim and 32 处理丢失的字段 #!/bin/bash missing=false while IFS=, read -r fd1 fd2 do if [ "$fd1" == "" ] then echo "field1 is empty or no value set" missing=true elif [ "$fd2" == "" ] then echo "field2 is empty or no value set" missing=true else echo "$fd1 and $fd2" fi done < input.csv if [ $missing ] then echo "WARNING: Missing values in a CSV file. Operation failed!" exit 1 else echo "CSVfile read successfully!" fi bash解析csv文件 再来一个复杂点的实例。 ...

六月 11, 2023 · JQX

显示当前使用的网络接口

$ ip addr | awk '/state UP/ {print $2}' | sed 's/.$//' 输出结果 eth0 eth1

四月 29, 2021 · JQX

将时间从纪元格式转换为ISO格式

printf '%(%FT%T)T\n' 1606752450 无需perl, awk, 或 /usr/bin/date,bash内置"printf"函数就能搞定。 输出 2020-11-30T11:07:30

四月 27, 2021 · JQX