如何结合tr、xargs与cut压缩重复空格并提取Git远程信息
问题原因与解决办法
你遇到的问题是**git remote -vv的输出里不仅有普通空格,还包含制表符(Tab)**,而你只用tr -s " "只压缩了空格,制表符没被处理,所以看起来还是有“连续空格”。
快速修复方案
把tr的参数改成同时处理空格和制表符,就能把所有连续空白压缩成单个空格:
ls | xargs -I{} git -C {} remote -vv | sed -n 'p;n' | tr -s ' \t' | cut -d ' ' -f1,2
更简洁的替代方案
用awk更省心,它默认会把任意数量的空格、制表符当成分隔符,直接提取列就行,不用额外处理空白:
ls | xargs -I{} git -C {} remote -vv | sed -n 'p;n' | awk '{print $1, $2}'
另外,用ls配合xargs处理目录可能会有问题(比如目录名带空格),可以换成更可靠的写法:
find . -maxdepth 1 -type d -exec git -C {} remote -vv \; | sed -n 'p;n' | awk '{print $1, $2}'
内容的提问来源于stack exchange,提问作者Anil
相关产品推荐
相关产品推荐

