Shell-Script

使用 shell 命令過濾以下文本

  • August 7, 2018

我可以使用git diff命令獲取文件差異,並對其進行過濾,如下所示:

-此文件夾包含常見的數據庫腳本。

+此文件夾包含常用的數據庫腳本。

+添加了新行。

但是,我希望能夠僅獲得差異,即New Line added.我如何才能實現這一點 - 請注意,在這裡我想刪除一對包含

'+This folder contains common database scripts.'

'-This folder contains common database scripts.' 並刪除空格(三個“+”行)

試試這個:

如果+New Line added.是輸出的最後一行git diff

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

如果你想擺脫+

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

使用正則表達式;

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

引用自:https://unix.stackexchange.com/questions/460960