while 循环读取文件内容

读取行

data.csv 示例CSV文件内容(最后一行没有换行符)

name,gender,age,height
z3,male,18,180

l4,male,29,170
w5,famale,30,165
#z6,famale,20,160

query.sh

#!/bin/bash

count=1

# IFS 内部字段分隔符,作用:设置IFS为空,防止行首行尾的空格被删除
# -r 原始模式,作用:禁止反斜杠转义,原样读取字符
# || [ -n "$line" ] 处理最后一行,作用:确保读取没有换行符的最后一行

while IFS= read -r line || [ -n "$line" ]
do
  # 跳过表头,跳过空行,跳过注释行
  [ "$line" = "name,gender,age,height" ] && continue
  [ -z "$line" ] && continue
  [[ "$line" =~ ^# ]] && continue
  echo "$line"
  ((count++))

done < data.csv

echo "Summary: process $((count-1)) lines"

读取行中字段

db.csv 示例CSV文件内容(最后一行没有换行符)

query.sh

读取行中字段 - 2 (先读取行,再处理字段)

Last updated