【发布时间】:2014-10-17 17:51:18
【问题描述】:
我正在尝试使用 split 来反转字符串中的字符顺序,该字符串显示为具有许多此类行的文件中的第二个字段。命令:
{
n=split($2,arr," ");
for(i=1;i<=n;i++)
s=arr[i] s
}
{ print s }
对一行执行此操作。但是,arr 数组(和 n)似乎是不朽的,因此当我将此代码嵌入到 awk 脚本中以处理多行时,与我想要反转的字段对应的输出会累积(并反转)所有先前的行:
1_B.pdb
GGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRG
AARS_0001_B.pdb
GGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRGGGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRG
AARS_0002_B.pdb
GLILYDGFLDKRDLEGLKYNDILNRTKDVTDVGNTTRTECPDVNRKGGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRGGGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRG
AARS_0003_B.pdb
DGCSLDGFTDDRDLKGALYNKILNKTLIVTDVGNTTRTEVCEKDRYGLILYDGFLDKRDLEGLKYNDILNRTKDVTDVGNTTRTECPDVNRKGGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRGGGTGYPGLKDKDDNEGTKYNKLLNATLIVTDVGNTIRTECPDVNRG
在我看来,这似乎是重新初始化的问题。我试图删除 arr[] 的所有先前元素并将 n 重置为 0,但没有任何效果。我需要做什么?
【问题讨论】: