gpt4 book ai didi

regex - 递归地向svn添加特定的源文件类型

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:34 25 4
gpt4 key购买 nike

我知道这是一个丑陋的脚本,但它可以完成工作。我现在面临的是添加更多的扩展名,这会使票据更加困惑。我怎样才能使它更加模块化?具体来说,我如何在多行中编写这个长正则表达式(源文件扩展名)?在每一行说一个分机。我想我在字符串连接方面做错了,但不太确定到底是什么。这是原始文件:

#!/bin/bash
COMMAND='svn status'
XARGS='xargs'
SVN='svn add'
$COMMAND | grep -E '(\.m|\.mat|\.java|\.js|\.php|\.cpp|\.h|\.c|\.py|\.hs|\.pl|\.xml|\.html|\.sh|.\asm|\.s|\.tex|\.bib|.\Makefile|.\jpg|.\gif|.\png|.\css)'$ | awk ' { print$2 } ' | $XARGS $SVN

这就是我的大致目标

...code code
'(.\m|
\.mat|
\.js|
.
.
.
.\css)'
..more code here

有人吗?

最佳答案

我知道这并没有直接回答问题,但从可读性的角度来看,我认为大多数开发人员会同意单行正则表达式是最常见的做事方式,因此也是最可维护的方法。此外,我不确定您为什么在每个扩展名中都包含一个句点,这应该只需要使用一次。

我写了这个小脚本来自动将所有图像添加到 svn。您应该能够简单地在正则表达式中的管道之间添加扩展名来添加或删除不同的文件类型。请注意,它通过确保每行以“?”开头来确保仅添加无法识别的文件。 (^\?) 并以句点 (\.(extensions)$) 结尾。希望对您有所帮助!

#!/bin/bash

svn st | grep -E "^\?.*\.(png|jpg|jpeg|tiff|bmp|gif)$" > /tmp/svn-auto-add-img

while read output; do
FILE=$(echo $output | awk '{ print $2 }')
svn add $FILE
done < /tmp/svn-auto-add-img

exit 0

关于regex - 递归地向svn添加特定的源文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745377/

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