シェルコマンドを使用して、次のテキストをフィルタリングします。

シェルコマンドを使用して、次のテキストをフィルタリングします。

git diffコマンドを使用してファイルdiffをインポートし、次のようにフィルタリングできます。

- このフォルダには一般的に使用されるデータベーススクリプトが含まれています。

+ このフォルダには一般的に使用されるデータベーススクリプトが含まれています。

+

+

+

+新しい行を追加します。

しかし、違いだけが得られるようにしたいです。つまり、New Line added.これをどのように達成できますか?ここでは、以下を含む一対の行を削除したいと思います。

'+This folder contains common database scripts.'そして

'-This folder contains common database scripts.' スペースを削除します(3つの「+」行)。

答え1

この試み:

+New Line added.出力の最後の行の場合git diff

git diff | tail -1 | tr -d '\n'

なくしたいなら+

git diff | tail -1 | sed -e 's/^+//' | tr -d '\n'

答え2

正規表現を使用してください。

echo "-This folder contains common database scripts.
+This folder contains common database scripts.
+
+
+
+New Line added" \
| grep -Pv "^[+-]$" \
| perl -p0e 's/-.*(.{9}).*\n\+.*\1.*//g'

オンラインでお試しください http://tpcg.io/hb9xSY

関連情報