如何使用 tcsh 脚本读取 csv 文件并获取环境变量的当前值

How to read csv file using tcsh script and get current value of environ variable

我有这个 csv 文件 (sample.csv),它看起来像:

variable,value
var1,/value/of/var1/which/is/path

我需要使用 tcsh 脚本 parse/read 这个 csv。 我正在尝试将环境变量 var1 的当前值与此 csv 文件中给出的值进行比较。

类似于:

if( current value of $var1 == /value/of/var1/which/is/path) then
  echo "Value matches"
else
  echo "value does not match with current value"

您可以像这样遍历文件:

foreach line ( `cat a.csv` )
    set field1 = `echo "$line" | cut -d, -f1`
    set field2 = `echo "$line" | cut -d, -f2`

    if ( "$field1" == "var1" ) then
        echo "Match -> $field1 $field2"
    else
        echo "No match -> $field1 $field2"
    endif
end

foreach 循环将逐行遍历文件。在循环内,您使用 cut 命令通过 , 分隔符拆分行。您可以使用 if 语句检查这些变量。

注意:如果这是一个新脚本,您可能不想使用 tcsh。 tcsh 是一个古老的 shell,有许多危险和丑陋的角落。您可能想使用 Bourne shell(/bin/shbash),或者更好的是,"real" 编程语言,如 Python 或 Ruby.解析 CSV 文件并不总是那么容易(引用样式等不同),Python 和 Ruby 都有出色的 csv 解析模块,可以为您处理所有这些。