私はファイルのgit diff
結果の特定の行を繰り返し処理しようとしているKornシェルスクリプトを作成しています。知らない人のために、git diff
リストは変更がファイルに加えて、次のようになり、その出力は、(変更のみのライン3と5と仮定した場合):私は、文字列でこの結果を保存している特定の種類の変更に関するgit diff出力の検索
unchanged line 1
unchanged line 2
- previous version of line 3
+ new version of line 3
unchanged line 4
- previous version of line 5
+ new version of line 5
を変数(例:diff
)、または-
(たとえば、- previous version of line 3
)で始まるdiff
の各行について繰り返し処理する必要があります。最も直感的な解決策は、明らかにdiff
の各行を繰り返し、if line contains + or -
のようなものを使用しますが、diff
は別々の行の配列ではなく、別の場所に\n
で区切られた文字列です。
私が探しているのは、文字列の各部分を2つの\n
文字の間で抽出する方法です。
これをKornシェルでどのように達成できますか?あるいは、より良い選択肢を提案するかもしれません。アプローチ以下
を見つけたそして、あなたは 'この中でkorn'タグに失敗しました...ところで、疑問を。 kornシェルは配列のようなbashをサポートしていませんか? – sjsam
@sjsam kornは検索時にタグとして表示されません。昨日まで現れていた。そして、kornは配列をサポートします。 2つの '\ n'文字の間で結果の各部分を抽出し、それを配列に移動することをお勧めしますか? – lebowski
私はあなたがそれを抽出する必要はないと思う。配列演算子の中ではいつでもコマンド置換を行うことができます。 kornタグに関しては、ごめんなさい – sjsam