我有以下情况。
awk '$0 != "Force for tool binder" # print all lines until string found
$0 =="Force for tool binder"{
print ; getline ; print; # go to 2 lines below the string
getline; getline < " forceState$j.k "; print}' dynaFile_Offen1.k > tempDynaFile.k # take the string from
#the file forceStates$j.k and replace in the main file, generating a temp file.
问题是这里j是循环索引,这意味着对于第一种情况,它是j = 1。 当我将它用作forceStates1.k时,它工作得很完美,但在循环中却没有取得价值。
我将不得不接受这些建议。
答案 0 :(得分:0)
$j
中的 '... " forceState$j.k " ...'
不会展开。
这是一个问题吗?
答案 1 :(得分:0)
$ j看起来是一个shell脚本变量。由于您的awk脚本位于单引号部分中,因此shell不会替换awk脚本中的变量。所以awk看到了文字$j
。您需要更改shell引用以允许替换,或者可能更有用地在命令行上传递它,例如:
awk -v loopctr=$j 'BEGIN {print loopctr}'
每次在awk变量j
中传递loopctr
的值时,都会打印循环计数器。