我正在尝试提取 git 创建的文件夹的名称。输出显示:
...
Cloning into 'repository-name'...
...
我想将此输出通过管道传输到 grep 中以提取显示 的一行Cloning into 'repository-name'
。但是,当我运行时git clone https://github.com/username/repository-name.git | grep "Cloning into"
,git 似乎绕过 grep 并将输出直接打印到屏幕,因为我得到了完整的 git 输出消息,没有 grep 突出显示。将 --no-pager 标志发送到 git 没有帮助。
答案1
从git-clone
手册页:
--progress
当附加到终端时,默认情况下在标准错误流上报告进度状态,除非指定了 --quiet。即使标准错误流未定向到终端,此标志也会强制执行进度状态。
所以我们必须做标准描述符的重定向作为 git-clone 在标准错误流上的输出。
这可能会做
git clone https://github.com/username/repository-name.git --progress 2>&1 | grep "Cloning into"