【问题标题】:How to use a csv file for multiple file inputs in command line argument of Bash Script?如何在 Bash 脚本的命令行参数中使用 csv 文件进行多个文件输入?
【发布时间】:2017-11-28 04:02:21
【问题描述】:

您好,我正在使用这个名为 analysis.sh 的脚本

#!/bin/bash

SAMPLENAME=$1;
SAVEDATA=$2;
DATAPATH=$3;
REFERENCE=$4

......

我想以 CSV 格式输入多个文件,而不是每次都输入单个文件的详细信息,因为可以通过单个脚本解析多个文件。

例如我有两个文件 ABC 和 XYZ

所以为了分析这两个文件,我给出了这些命令

对于 ABC

analysis.sh ABC /home/myfolder1  /home/datafolder1 /home/referncefolder1

对于 XYZ

analysis.sh XYZ /home/myfolder2  /home/datafolder2 /home/referncefolder2

如果我有 100 个不同的文件,如何使用单个 CSV 文件,其中包含可以通过此 bash 脚本的命令行参数解析的这 100 个文件的详细信息?

【问题讨论】:

    标签: bash shell csv arguments


    【解决方案1】:

    您可以将 csv 文件的名称作为单个参数传递,并让您的脚本逐行读取:

    csv=$1
    while IFS=, read -r filename savedata datapath reference; do
      # do the processing
    done < "$csv"
    

    查看这篇文章以了解有关如何在 Bash 中读取文本文件的更多信息:

    您可能想了解更多关于 shell 变量命名约定的信息:

    【讨论】:

      猜你喜欢
      • 2015-07-07
      • 1970-01-01
      • 2020-08-28
      • 2020-03-29
      • 2020-08-01
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多