gpt4 book ai didi

linux - awk unix 插入文件位置目录

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:09 24 4
gpt4 key购买 nike

在 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 变量,然后没有将它插入到实际文件位置。

omitting directory `/home/ork/js/'

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

希望我说得足够清楚,如果需要进一步说明,请告诉我。

最佳答案

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

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

关于linux - awk unix 插入文件位置目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15294540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com