私はMATLABで以下を持っています:
while ~feof(fi)
dline== fgetl(fi)
if count == 0
if dline == -1
<do stuff>
end
end
if dline(end-27) == ':'
dline = dline(1:end-28)
end
<output>
for i = 32:size(dline,2)
if dline(i) == '{'
count = count + 1
sp = []
for j = 1:count
sp = [sp;s]
end
<output>
elseif dline(i) == '}'
count = count - 1
sp = []
for j = 1:count
sp = [sp;s]
end
<output>
elseif dline(i) == ','
<output>
else
<output>
end
end
dline のインデックス作成に問題があります。たとえば、MATLAB では次のようになります。
if dline(i) == '{'
シェルスクリプトに翻訳すると、次のようになります。
if [ ${line[i]} == '{' ]
またはそのバリエーション。しかし、それに関連するエラーが発生するか、「{」が見つかりません。「i」を「$x」に置き換えてみました。ここで、「x」はループ内で 32 からカウントアップします。「{」を「$match1」に置き換えてみました。ここで、「$match1」=「{」です。
MATLAB コードの問題は無視してください。動作することはわかっているので、すぐに入力しました。そのコードを (Linux 上で) 使用可能な BASH スクリプトに変換することにもっと興味があります。