git - Git Diff 和 Grep 输出字符串列表
问题描述
如果我得到一个已更改的文件列表,我该如何拉出某个字符串并打印它?
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'
了,但我不确定如何捕捉这个词。(在 Mac 上使用 zsh 如果它有助于缩小我的系统上的内容)
解决方案
您可以使用cut
命令分解路径:
git diff --name-only origin/master | cut --delimiter / --fields 3
在 Mac 上,尝试:
git diff --name-only origin/master | cut -d/ -f3
推荐阅读
- php - 如何使用 ffmpeg/php 在按钮单击时将 mp4 文件转换为 mp3?
- javascript - Web Firebase Cloud Messaging - 如何从客户端订阅主题?
- excel - 将逗号分隔的数字列表匹配到 Excel 中的一列(无宏,无 TEXTJOIN)
- javascript - socket.io 无法与 React js Node.js 和 Express.js 一起正常工作
- r - 无法创建工作簿
- amazon-web-services - terraform aws_security_group 资源中的无效 CIDR 地址与文件中的 cidr_blocks
- spring - 有没有办法从一个 restTemplate 交换响应中获取 cookie 并将其设置为另一个单独的请求?
- java - Spring Boot 应用程序在反向代理后面嵌入了 Tomcat,在请求 /contextPath 时不重定向到 https 而没有尾随斜杠
- javascript - ES6 中的 D3.js 饼图补间 - 未捕获的 TypeError
- asp.net-mvc - 如何在 MVC 视图中单击按钮时使用控制器方法填充文本区域?