有区分字符和数字的方法吗?

时间:2015-04-01 03:12:07

标签: bash

我有一个BASH脚本,它不断解释传入的数据。我希望BASH有一种方法可以实现它是否是一组字母,例如hibye 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 金额,我无法读取它,并跳到下一行。 问:脚本会是什么样的?

1 个答案:

答案 0 :(得分:0)

使用$line作为分隔符将一行(此处为${array[@]})拆分为数组(此处为,):

IFS=, read -r -a array <<<"$line"

要查看数组中放入了多少个值:

${#array[@]}

查看特定元素是否仅由数字组成:

! [[ ${array[4]} =~ [^0-9] ]]

!也可以进入[[...]]。如果要包含负数,小数点等,请调整字符类。)