awk unix插入到文件位置目录中

时间:2013-03-08 12:57:55

标签: linux unix awk

在linux中,我试图从CSV文件的特定列和行中选择一个变量,然后将此变量用作文件位置层次结构的末尾。当我在bash终端窗口中键入以下内容时,似乎可以通过在屏幕上输出正确的行和列中的变量来工作。

awk -F "," 'FNR == 2 {print $8}' /sdata/images/projects/ASD_SSD/1/ruths_data/ruth/imaging\ study/imaging\ study\ working/delete2.csv

但是,我试图在脚本中进行以下替换,这无法正常工作......

r=2
c=8
 
s=awk -F "," 'FNR == $r {print $c}' /sdata/images/projects/ASD_SSD/1/ruths_data/ruth/imaging\ study/imaging\ study\ working/delete2.csv

然后我尝试将s输出用作层次结构文件位置的末尾。例如,/ home / ork / js / s *

我一直收到以下错误,因此看起来它没有创建s变量,而是没有将其插入到实际的文件位置。

  

省略目录`/ home / ork / js /'

我花了几个小时试图弄清楚是什么阻止了这个工作,并且是一个新用户(所以我确信它很简单,对不起)。

我希望我很清楚,如果需要进一步澄清,请告诉我。

1 个答案:

答案 0 :(得分:1)

这是一个常见问题。单引号保护shell中的变量,因此它们永远不会被扩展。分配给变量s时也需要命令替换。一种方法是:

s=$(awk -F, 'FNR==r{print c}' r="$r" c="$c" file)