我试图从网格中的节点读取x和y坐标。所有节点的坐标位于文件mesh_coords.xyz中。我想要一个提到1055行的词,它是指一个叫做哈利斯科的地方。awk:fatal:无法打开文件`'进行读取(无此文件或目录)
nodes_file='../output/ascii/mesh_coords.xyz'
jalisco=`awk '{if (NR==1055) print $0}' ${nodes_file}`
x=`awk '{print $1}' ${jalisco}`
y=`awk '{print $2}' ${jalisco}`
返回: “AWK:CMD行:1:致命的:无法打开文件'4250.000000' 读取(没有这样的文件或目录)” 两次(我假设一次x和一次Y)。
但是:
nodes_file='../output/ascii/mesh_coords.xyz'
awk '{if (NR==1055) print $0}' ${nodes_file}
打印正确的X和Y坐标。 我需要稍后使用变量x和y,以便它们需要正确设置。
我对Linux比较陌生,所以很抱歉,如果这是一个简单的awk/shell语法问题。
使用'$()'而不是反引号。 – 2014-11-08 11:29:39
它看起来像'$ jalisco'包含执行前一个awk命令(这是一个数字)的结果。然后,您尝试将其用作文件名,但不存在。 – 2014-11-08 11:32:14
'awk'{if(NR == 1055)print $ 0}''可以更简洁地写成'awk NR == 1055' – 2014-11-08 11:49:29