Bash 使用shell脚本从文件中的特定行读取float

Bash 使用shell脚本从文件中的特定行读取float,bash,shell,awk,Bash,Shell,Awk,我有一系列的数据文件,需要从中获取一些特定的值。我知道文件中数据所在的行。我的数据文件如下所示 x y z 1 0.2 0.3 2 0.1 0.2 3 0.5 0.6 etc. 我使用shell脚本访问文件,从每个文件收集所需的数据,并将收集的数据输出到一个文件中 例如,我需要第3行中的y值,0.1。我试过以下方法 let dataLine=3 let yVal=`head -n $dataLine dataFile | tail -n 1 | awk '{

我有一系列的数据文件,需要从中获取一些特定的值。我知道文件中数据所在的行。我的数据文件如下所示

x    y    z
1    0.2  0.3
2    0.1  0.2
3    0.5  0.6
etc.
我使用shell脚本访问文件,从每个文件收集所需的数据,并将收集的数据输出到一个文件中

例如,我需要第3行中的y值,0.1。我试过以下方法

let dataLine=3
let yVal=`head -n $dataLine dataFile | tail -n 1 | awk '{print $2}'`
但是我得到了以下错误

let: yVal=0.1: syntax error: invalid arithmetic operator (error token is ".1")
我曾尝试在
awk'{print$2}'
之后添加
|bc
,但它甚至没有为应分配给
yVal
的内容注册正确的值。当我按照上面所示进行操作时,它确实表明它正在识别正确的行和列中的值


感谢您的帮助,

如果您想获得3rd line的第二个字段,那么下面的内容可能会对您有所帮助

line_number=3
awk -v line="$line_number" 'FNR==line{print $2}'  Input_file
awk 'FNR==3{print $2}'  Input_file
解决方案1:如果您想将任何shell变量的值传递给任何
awk
变量,那么以下内容可能会对您有所帮助

line_number=3
awk -v line="$line_number" 'FNR==line{print $2}'  Input_file
awk 'FNR==3{print $2}'  Input_file
解决方案2:如果您想直接打印第3行的第2个字段,那么以下内容可能会对您有所帮助

line_number=3
awk -v line="$line_number" 'FNR==line{print $2}'  Input_file
awk 'FNR==3{print $2}'  Input_file

如果你想得到第三行的第二个字段,那么下面的内容可能会对你有所帮助

line_number=3
awk -v line="$line_number" 'FNR==line{print $2}'  Input_file
awk 'FNR==3{print $2}'  Input_file
解决方案1:如果您想将任何shell变量的值传递给任何
awk
变量,那么以下内容可能会对您有所帮助

line_number=3
awk -v line="$line_number" 'FNR==line{print $2}'  Input_file
awk 'FNR==3{print $2}'  Input_file
解决方案2:如果您想直接打印第3行的第2个字段,那么以下内容可能会对您有所帮助

line_number=3
awk -v line="$line_number" 'FNR==line{print $2}'  Input_file
awk 'FNR==3{print $2}'  Input_file

欢迎使用stack overflow,预期的输出是什么,请将其添加到post本身,然后让我们知道。在shell脚本中使用
float
值可能是一个无回报的挑战
awk
设计用于处理和所有数据类型(无需类型声明,如
c
java
和许多其他文件中所示)。你会发现花在教程上的时间是值得的。祝你好运。欢迎使用stack overflow,预期的输出是什么,请将其添加到post中,然后让我们知道。在shell脚本中使用
float
值可能是一个无回报的挑战
awk
设计用于处理和所有数据类型(无需类型声明,如
c
java
和许多其他文件中所示)。你会发现花在教程上的时间是值得的。祝你好运