1

有txt文件-:

file1-
abhinav,Age_10,11,12,13,14,15
deepak,Age_10,11,12,13,14,15
file2-:
Dixit,15
Skoda,15

外壳脚本-:

old_count=`grep 'abhinav' |  awk  'BEGIN { FS = "," } ; { print $2 }' | awk  'BEGIN { FS = "_" } ; { print $2 }'`
new_count=`grep 'dixit' | awk  'BEGIN { FS = "," } ; { print $2 }'`
sum=`expr $old_count + $new_count`

但是当这个脚本被执行时,就会出现错误 expr: non-numeric argument iscoming 。虽然两个变量 $old_count $new_count 都是数字。

4

1 回答 1

1

回避任何实际问题,将其写成更简单

old_count=$( awk -F, '/abhinav/ {split($2, a, "_"); print a[2]}' file1 )
new_count=$( awk -F, '/Dixit/ {print $2}' file2 )
sum=$(( old_count + new_count ))

一个问题可能是您正在寻找dixit,而不是Dixit,导致new_count. 我得到一个不同的错误,但这可能是基于expr. 请注意,exprshell 中的算术不再需要它;$((...))应该在任何符合 POSIX 的 shell 中可用。

于 2013-11-15T14:45:02.490 回答