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

如何将换行分隔的SRR_Acc_list.txt内容转为SAMPLES列表?

解决方法

下面提供几种简单的命令行实现方式,帮你把换行分隔的文本转换成目标格式:

方法1:使用sed命令

一行命令即可完成转换:

echo 'SAMPLES = ["'$(sed ':a;N;$!ba;s/\n/", "/g' ./input/SRR_Acc_list.txt)'"]'

原理说明

  • :a;N;$!ba:将文件所有内容读入一个缓冲区,把多行合并成一个整体处理
  • s/\n/", "/g:把所有换行符替换成", "
  • 最后用echo拼接成SAMPLES = ["..."]的格式

方法2:使用awk命令

如果更习惯用awk,也可以这样写:

echo 'SAMPLES = ["'$(awk '{printf "%s\", \"", $0}' ./input/SRR_Acc_list.txt | sed 's/", "$//')'"]'

原理说明

  • awk '{printf "%s\", \"", $0}':逐行输出每个样本ID并追加", "
  • sed 's/", "$//':去掉最后一行多余的", "
  • 再通过echo包裹成目标格式

方法3:纯Bash脚本(无额外工具依赖)

如果不想依赖sed/awk,用纯Bash循环也能实现:

#!/bin/bash
result='SAMPLES = ["'
while IFS= read -r line; do
    result+="$line\", \""
done < ./input/SRR_Acc_list.txt
# 移除末尾多余的 ", " 并闭合括号
result="${result%\", \"}']"
echo "$result"

原理说明

  • 逐行读取文件内容,拼接成带", "分隔的字符串
  • 最后修正末尾的多余字符,补全列表格式

你之前用的tr -d '\n'只是单纯删除换行符,没有添加引号和分隔符,所以无法得到预期的列表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:05:05