Git Diff и Grep список строк - PullRequest
1 голос
/ 01 мая 2020

Если я получу список файлов, которые изменились, как я могу вытащить определенную строку и напечатать ее?

git diff --name-only origin/master

Вывод:

server/packages/sharing/src/test1.js
client/packages/sharing/src/test2.js
client/packages/foo/src/test3.js
client/packages/foo/src/test4.js
client/packages/bar/src/test5.js
client/packages/bar/src/test6.js
client/packages/baz/src/test7.js
client/packages/baz/src/test8.js

Я хотел бы получить третье слово в пути при проверке списка файлов.

Попытка получить:

sharing, foo, bar, baz

или

sharing
foo
bar
baz

Я пытался git diff --name-only origin/master | grep -o '*/packages/*/src' но я не уверен, как уловить слово. (используя zsh на Ма c, если это помогает сузить то, что находится в моей системе)

1 Ответ

2 голосов
/ 01 мая 2020

Вы можете разложить свой путь с помощью cut команды :

git diff --name-only origin/master | cut --delimiter / --fields 3

На Ма c, попробуйте:

git diff --name-only origin/master | cut -d/ -f3
...