gpt4 book ai didi

bash - 是否可以将 gnu 的输出与 grep 并行着色?

转载 作者:行者123 更新时间:2023-11-29 09:12:09 25 4
gpt4 key购买 nike

我有一个脚本,可以在多个存储库上并行运行 git 命令,而 gnu 并行。我想通过 grep 传递 git 命令的输出并对某些部分进行着色,例如在 git status 上我希望“clean”一词显示为绿色。有什么办法可以用 gnu parallel 和 grep 做到这一点吗?

到目前为止,这是我的脚本:

#!/bin/bash

START_DIR=`pwd`
export GIT_ARGS=$*
function do_git() {
PROJECT_DIR=`dirname $1`
cd $PROJECT_DIR
echo ""
pwd
git $GIT_ARGS
echo ""
cd $START_DIR
}

export -f do_git

find . -maxdepth 2 -type d -name ".git" | sort | parallel --max-procs 4 "do_git {}"

最佳答案

尝试将此添加到管道的末尾:

| grep -E --color 'clean|word1|word2|$'

根据需要替换和添加或删除单词。 $ 使所有行匹配并通过。 --color 选项用于 GNU grepgrep 的其他版本可能使用不同的选项。

或者,有several utilities可以进行着色。

一般提示:

  • 避免使用全部大写的变量名以防止与 shell 变量的名称冲突
  • 使用 $() 代替反引号 - 它们更具可读性和通用性(例如嵌套)
  • 不需要使用function关键字
  • 参见 BashFAQ/028关于尝试使用脚本的位置
  • 我认为 GIT_ARGS 不需要导出

关于bash - 是否可以将 gnu 的输出与 grep 并行着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18517978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com