我有一个BASH脚本,它不断解释传入的数据。我希望BASH有一种方法可以实现它是否是一组字母,例如hi
,bye bye
或数字123451
。
代码片段看起来像什么?
awk_variables=`echo "$line" | awk -F, '{print $1, $4, $5, $7, $10 }'`
awk_variables_value_array=($awk_variables) #turns contents of 'awk_variables' into an array 'awk_variables_value_array'
^这是代码的一部分,它从csv文件中读取($)line
。在这里,数据可能是“你好”。或者数字,如果那样的话,我不想读它。但是$4
在读取时会有字母。
问:如果能够将脚本与字母和数字区分开来,脚本会是什么样子?
理想情况下:
另一种方法是,如果一些代码可以计算给定($)line
中有多少参数。如果参数不等于 x 金额,我无法读取它,并跳到下一行。 问:脚本会是什么样的?
答案 0 :(得分:0)
使用$line
作为分隔符将一行(此处为${array[@]}
)拆分为数组(此处为,
):
IFS=, read -r -a array <<<"$line"
要查看数组中放入了多少个值:
${#array[@]}
查看特定元素是否仅由数字组成:
! [[ ${array[4]} =~ [^0-9] ]]
(!
也可以进入[[...]]
。如果要包含负数,小数点等,请调整字符类。)