代码之家  ›  专栏  ›  技术社区  ›  Siya Mzam

使用regex或bash脚本重构

  •  -1
  • Siya Mzam  · 技术社区  · 6 年前

    我想运行位于深深嵌套的目录中的文件,并将其部分更改为其他内容。 例如,我想在文件中更改

    className={styles.badgeRight}
    

    className="badgeRight"
    

    我可以手动执行,但有数千个文件,所以脚本或某些regex可以执行。我该如何实现这一目标?

    几乎只取点后面的任何内容并用引号括起来,然后删除JSX括号和单词 styles .

    2 回复  |  直到 6 年前
        1
  •  3
  •   simon3270    6 年前

    对文件进行一次简单的就地“SED”编辑就可以了。这将创建备份文件(在原始名称中添加“.bak”)。为了避免这种情况,只需更换 -i.bak 具有 -i :

    find . -type f -exec sed -i.bak 's/className={styles\.\([^}]*\)}/className="\1"/' {} +
    
        2
  •  0
  •   Abhijit Pritam Dutta    6 年前

    第一次使用 find 命令列出所有文件并将其存储在 list_of_file.txt 文件

     find /your/directory/path/*.txt > list_of_file.txt
     # change file extension type from txt to your own type example *.java
    

    现在使用 while loop 和使用 sed 修改脚本的命令

     while read file
     do
         sed -i.bak 's/className={styles\.\([^}]*\)}/className="badgeRight"/g' $file
     done < list_of_file.txt