ファイルの13列目のすべての用船者のASCIIコードを取得するには、このスクリプトを記述します
awk -v ch="'" '{
for (i=1;i<=length(substr($13,6,length($13)));i++)
{cmd = printf \"%d\\n\" \"" ch substr(substr($13,6,length($13)),i,1) "\"" cmd | getline output close(cmd) ;
Number= Number " " output
}
print Number ; Number=""
}' ~/a.test
しかし、それは正しい方法では機能しません!私はそれがしばらくの間うまく機能し、それから奇妙な結果を生み出すことを意味します!?例として、この入力の場合(13番目の列であると想定します)
CQ:Z:%8 %%%% 0 %%%% 9 %%%%:%%%%%%%%%%%%%%%%%%
私はこれを取得する必要があります
37 56 37 37 37 37 48 37 37 37 37 57 37 37 37 37 58 37 37 37 37 .............. ..
しかし、私はこれを持っています
37 56 37 37 37 37 48 48 48 48 48 57 57 57 57 57 58 58 58 58 58 .............. ..
ご覧のとおり、最初のミス計算は文字「0」の後に表示されます(結果は48)。
私のコードのどの部分がこのエラーの原因であるか知っていますか?!