加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 21:09:33 所属栏目:安全 来源:网络整理
导读:我有一个脚本,可以在多个并行的存储库上运行git命令,这些存储库与gnu并行.我想通过grep传递git命令的输出并为某些部分着色,例如在git status上我希望单词“clean”显示为绿色.有没有办法用gnu parallel和grep做到这一点? 到目前为止这是我的脚本: #!/bin/b
我有一个脚本,可以在多个并行的存储库上运行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 grep.其他版本的grep可能使用不同的选项.

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

一般提示:

>避免使用all-caps变量名来防止名称与shell变量冲突
>使用$()而不是反引号 – 它们更具可读性和更多功能(例如嵌套)
>不需要使用function关键字
>有关尝试使用脚本位置的信息,请参阅BashFAQ/028>我认为不需要导出GIT_ARGS

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读