You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取文本文件中引号包裹的指定字段并保存到变量

解决方案

以下提供不同场景下的可用实现方式,默认你的目标文件命名为user.csv。

方法1:Bash + Awk (shell脚本场景首选)

直接一行命令提取字段并赋值给变量:

# 提取指定行的两个字段同时赋值给两个变量
read target_user expire_days < <(awk -F '","' '$1~/"jeffrey$/{print substr($1,2), substr($3,1,length($3)-1)}' user.csv)

执行完可以直接验证变量:

echo $target_user    # 输出结果:jeffrey
echo $expire_days    # 输出结果:90 days

参数说明:

  • -F '","' 把, "设置为字段分隔符,刚好适配被引号包裹的CSV字段拆分逻辑
  • 匹配到第一列结尾为jeffrey的行后,用substr去掉字段首尾多余的引号即可

如果需要更简单的写法,也可以直接全局替换引号:

read target_user expire_days < <(awk -F, '$1~/"jeffrey"/{gsub(/"/,"",$1);gsub(/"/,"",$3);print $1,$3}' user.csv)

方法2:纯Bash实现(无额外依赖)

如果环境里没有awk等工具,可以用原生bash语法处理:

while IFS=',' read -r user_col pass_col expire_col; do
  # 移除字段前后的引号
  user_col=${user_col//\"/}
  expire_col=${expire_col//\"/}
  if [ "$user_col" == "jeffrey" ]; then
    target_user=$user_col
    expire_days=$expire_col
    break
  fi
done < user.csv

方法3:Python实现(复杂CSV场景首选)

如果你的CSV包含转义字符、字段内逗号等复杂情况,用Python原生csv模块处理兼容性最好:

import csv

with open('user.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        if row['user'] == 'jeffrey':
            target_user = row['user']
            expire_days = row['expires_in']
            break

执行完之后直接使用target_user和expire_days两个变量即可。

内容的提问来源于stack exchange,提问作者Jamal Hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:45:05