如何使用 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/sh
或 bash
),或者更好的是,"real" 编程语言,如 Python 或 Ruby.解析 CSV 文件并不总是那么容易(引用样式等不同),Python 和 Ruby 都有出色的 csv 解析模块,可以为您处理所有这些。
我有这个 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/sh
或 bash
),或者更好的是,"real" 编程语言,如 Python 或 Ruby.解析 CSV 文件并不总是那么容易(引用样式等不同),Python 和 Ruby 都有出色的 csv 解析模块,可以为您处理所有这些。