Linux用grep递归查找项目中未使用的CSS类名

先提取CSS文件中的类名,再从HTML和JS中找出使用的类名,最后对比得出未使用类。具体步骤:1. 用grep递归提取./css/下所有以.开头的类选择器,去除点并去重保存为css_classes.txt;2. 在./src/中搜索class属性内的类名,支持引号和模板字符串,提取单词形式的类名去重后存为used_classes.txt;3. 使用comm -23比较两个文件,输出仅存在于css_classes.txt中的类,即为未被引用的疑似冗余类;4. 注意动态生成的类名、JSX或Vue表达式可能漏检,建议结合PurgeCSS等工具提升准确性。该方法适用于简单项目快速排查,复杂场景需借助AST解析辅助分析。

linux用grep递归查找项目中未使用的css类名

要查找项目中未使用的 CSS 类名,可以结合 grep 和文件遍历工具(如 find)来分析 HTML/JS 与 CSS 文件之间的引用关系。Linux 本身没有直接识别“未使用类”的功能,但可以通过命令组合实现初步排查。

1. 提取 CSS 文件中的所有类名

假设你的 CSS 文件在 ./css/ 目录下,先提取出所有定义的类名(去除注释、选择器等干扰):

grep -r '^.w+' ./css/ --include="*.css" | grep -o '.w+' | sed 's/^.//' | sort -u > css_classes.txt

grep -r:递归搜索 CSS 文件 ^.w+:匹配以 . 开头的类选择器(更精确可调整正则) sed ‘s/^.//’:去掉前面的点,只保留类名 结果保存到 css_classes.txt

2. 查找 HTML 和 JS 中使用的所有 class 名称

从 HTML 和 JavaScript 文件中提取所有出现在 class 属性或模板中的类名:

grep -rE 'class=["'"'"']?[^"'"'"']*bw+b' ./src/ --include="*.html" --include="*.js" | grep -o 'class=["'"'"'][^"'"'"']*' | grep -o 'w+' | sort -u > used_classes.txt

支持双引号或单引号内的 class 属性 grep -o ‘w+’ 提取其中每个单词作为类名 保存为 used_classes.txt

3. 找出未被使用的类名

对比两个列表,找出只在 CSS 中定义但未在代码中使用的类:

立即学习“前端免费学习笔记(深入)”;

comm -23 <(cat css_classes.txt) <(cat used_classes.txt)

comm -23:显示第一个文件有但第二个没有的内容 输出即为疑似“未使用”的 CSS 类名

4. 注意事项和优化建议

这个方法是静态分析,有一定局限性:

动态拼接的类名(如 class=”btn-{{state}}”)不会被捕获 JSX 或 Vue 模板中的表达式需额外处理 组件化框架(React/Vue)可能需要借助 AST 工具更准确分析 建议配合项目构建工具(如 PurgeCSS)做生产级清理

基本上就这些。对于简单项目,这套 grep 组合能快速发现明显冗余的类;复杂项目建议用专门工具辅助验证。不复杂但容易忽略细节,比如正则写得太松会误报。

以上就是Linux用grep递归查找项目中未使用的CSS类名的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1596740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
apache2一键缓存,HTML+CSS网站提速300%!
上一篇 2025年12月23日 11:25:59
Mac用Notion创建HTML学习数据库表格管理
下一篇 2025年12月23日 11:26:15

相关推荐

  • 如何设置自动关机_电脑定时关机命令教程

    定时关机的核心方法是使用windows系统自带的shutdown命令,如shutdown -s -t 1800表示30分钟后关机;2. 取消关机命令为shutdown -a,可及时中止误操作;3. 实现重复性定时任务需使用任务计划程序,通过创建基本任务设置每日或每周的自动关机或重启;4. 推荐使用命…

    2026年9月1日
    000
  • 如何使用Composer轻松统计PHP代码行数

    可以通过一下地址学习composer:学习地址 在进行 php 项目开发的过程中,统计代码行数是一项常见的需求,尤其是在评估项目规模或进行代码审查时。然而,手动统计不仅耗时且容易出错。最近,我在项目中遇到了这个需求,尝试了多种方法后,最终通过 composer 安装 sebastian/lines-…

    用户投稿 2026年9月1日
    100
  • VNCServer卡死处理办法

    在使用vnc连接远程linux服务器时,如果远程界面出现卡死情况,无法进行操作,可以通过重启vncserver服务来解决问题。以下是具体操作步骤: 首先,通过终端使用SSH远程连接到服务器。 查看vncserver命令的使用方法: [root@node1 ~]# vncserver –helpus…

    2026年9月1日
    000
  • Java中finally块的作用是什么 无论是否抛出异常都会执行吗

    finally块确保代码在try-catch结构中无论是否发生异常都会执行,常用于释放资源;2. 多数情况下finally会执行,包括无异常、有异常被捕获、甚至try或catch中有return语句时;3. 但在System.exit()被调用、线程被强制终止或JVM崩溃等极端情况下,finally…

    2026年9月1日
    000
  • 网页白屏怎么解决 电脑打开浏览器网页显示白屏的解决方法

    网页白屏怎么解决 电脑打开浏览器网页显示白屏的解决方法网页白屏怎么解决 电脑打开浏览器网页显示白屏的解决方法网页白屏怎么解决 电脑打开浏览器网页显示白屏的解决方法网页白屏怎么解决 电脑打开浏览器网页显示白屏的解决方法

    当我们通过电脑浏览器浏览网页时,有时会遇到页面显示为白屏的问题。这可能是由于网络连接不稳定、浏览器缓存错误、插件冲突或系统设置不当等多种因素造成。下面为大家整理了几种有效的解决方式。 一、确认网络连接状态 网络信号弱或DNS解析出错,可能导致网页内容无法正常加载。 应对措施: 检查Wi-Fi是否连接…

    2026年9月1日 用户投稿
    000
  • 怎么用VSCode运行代码_VSCode代码执行与调试教程

    VSCode中运行和调试代码的核心方法包括:1. 使用内置终端手动执行命令,灵活但需重复输入;2. 通过Code Runner插件一键运行,快捷但功能有限;3. 借助语言扩展与调试器深度调试,支持断点、变量监控、调用堆栈等高级功能,适合复杂项目。配置时需安装对应语言扩展、设置解释器路径、合理使用se…

    2026年9月1日
    000
  • 电脑缺失d3dcompiler_43.dll怎么修复 轻松搞定!

    电脑缺失d3dcompiler_43.dll怎么修复 轻松搞定!电脑缺失d3dcompiler_43.dll怎么修复 轻松搞定!电脑缺失d3dcompiler_43.dll怎么修复 轻松搞定!电脑缺失d3dcompiler_43.dll怎么修复 轻松搞定!

    在使用电脑的过程中,我们常常会遇到一些令人头疼的错误提示。尤其是运行某些游戏或程序时,系统可能会弹出“找不到 d3dcompiler_43.dll”之类的提示,让人束手无策。那么这个问题该如何解决呢?下面为大家介绍几种实用的修复方法,赶紧来看看吧~ 使用“星空运行库修复大师”进行智能修复 最便捷的方…

    2026年9月1日 用户投稿
    000
  • 使用GetInstanceScreenshot获取实例的截屏信息

    本文在介绍使用getinstancescreenshot获取实例的截屏信息的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获。 GetInstanceScreenshot 描述 我们返回Base64编码后的JPG图像格式的实例截屏,您需要自行解码。您可以在排查故障时调用该接口,并请注…

    2026年9月1日
    200
  • TOMG-Bench:大语言模型开放域分子生成新基准

    TOMG-Bench:大语言模型开放域分子生成新基准TOMG-Bench:大语言模型开放域分子生成新基准TOMG-Bench:大语言模型开放域分子生成新基准TOMG-Bench:大语言模型开放域分子生成新基准

    TOMG-Bench:评估大语言模型开放域分子生成能力的新基准 科学家们开发了一个新的基准测试——tomg-bench,用于评估大型语言模型 (llm) 在分子领域的开放域生成能力。该基准测试旨在弥补现有分子-文本数据集的不足,更准确地评估 llm 在实际分子设计中的应用潜力。 ☞☞☞AI 智能聊天…

    2026年9月1日 用户投稿
    000
  • 获取一台实例的系统命令行输出并且数据以Base64编码后返回

    本篇文章给大家带来的内容是关于获取一台实例的系统命令行输出并且数据以base64编码后返回,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 GetInstanceConsoleOutput 描述 云服务器ECS是虚拟化的云上服务,无法接入显示设备,也无法手动截屏。但是我们缓存了实例最…

    2026年9月1日
    100
  • Vue3项目中如何解决npm包“alice-player”集成失败的问题?

    Vue3项目中集成alice-player包的挑战与解决方案 在Vue3项目开发中,引入第三方npm包是常见操作,但有时会遇到集成难题。本文以alice-player包为例,探讨如何解决“npm包缺乏Vue3集成文档,自行尝试集成失败”的问题。 问题:alice-player包仅提供HTML调用方式…

    2026年9月1日
    000
  • 网友从 Win XP 泄露源码发现的隐藏功能和趣味细节

    网友从 Win XP 泄露源码发现的隐藏功能和趣味细节网友从 Win XP 泄露源码发现的隐藏功能和趣味细节网友从 Win XP 泄露源码发现的隐藏功能和趣味细节网友从 Win XP 泄露源码发现的隐藏功能和趣味细节

    代号为 whistler 的首个 windows xp 版本,已有近 20 年的历史。然而,最近 twitter 用户 albacore 分享了一些来自 windows xp 泄露代码的隐藏功能。通过调整特定的注册表项目,你可以解锁一些有趣的视图,并体验到此前未曾见过的功能。 首先,如上图所示的“开…

    2026年9月1日 用户投稿
    100
  • 电脑温度太高怎么办 6个实用降温解决方法

    电脑温度太高怎么办 6个实用降温解决方法电脑温度太高怎么办 6个实用降温解决方法电脑温度太高怎么办 6个实用降温解决方法电脑温度太高怎么办 6个实用降温解决方法

    在日常使用电脑时,不少用户会遭遇设备温度过高的困扰,典型表现包括风扇高速运转、系统运行卡顿,严重时甚至出现自动重启、死机或蓝屏现象。这不仅影响操作流畅性,长期高温还可能损害硬件,缩短电脑使用寿命。尽管导致过热的原因多种多样,但只要采取科学合理的应对措施,完全可以有效降温。本文将详细介绍几种实用的降温…

    2026年9月1日 用户投稿
    000
  • MongoDB ObjectId类型转换报错:如何正确处理String到ObjectId的转换?

    MongoDB ObjectId类型转换错误排查与解决 在MongoDB数据库操作中,ObjectId类型常常引发转换错误。ObjectId是MongoDB文档的唯一标识符,与普通字符串不同,直接转换可能导致异常。本文针对“将字符串转换为ObjectId时报错”的问题提供解决方案。 用户反馈的错误信…

    2026年9月1日
    000
  • MongoDB ObjectId类型转换错误:字符串转ObjectId失败如何排查?

    MongoDB ObjectId转换错误排查指南 在使用MongoDB时,经常需要将字符串类型的ID转换为ObjectId类型。如果转换失败,将会影响数据库操作。本文针对字符串转ObjectId报错问题提供排查方法。 问题:将字符串转换为ObjectId时报错,错误信息未提供,但可能原因与字符串ID…

    2026年9月1日
    100
  • u盘重装系统失败怎么弄,u盘重装系统不成功怎么办

    一、准备工具: 1. 一台电脑:毫无疑问,这是重装系统的基础设备。 2. 一个U盘:作为本次操作的核心工具,它将承载系统安装文件。 二、处理办法: 1. 确认U盘是否完好:有时问题出在U盘本身,可以尝试换插到其他设备上测试其是否能正常工作。 2. 核对U盘格式:部分电脑仅支持特定格式的启动盘,如FA…

    2026年9月1日
    000
  • 如何使用CreateCommand新建一条云助手命令

    本篇文章给大家带来的内容是关于如何使用createcommand新建一条云助手命令,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 CreateCommand 描述 您可以创建以下类型的命令: Windows 实例适用的 Bat 脚本(RunBatScript) Windows 实例…

    2026年9月1日
    100
  • Piti插件如何导入商业模板库_Piti插件导入商业模板库操作流程

    首先确认Piti插件版本为v3.0以上并完成正版授权,随后从官网下载商业模板包,通过插件内建的模板管理功能导入或手动复制解压后的模板文件至指定目录,最后检查依赖组件如Lottie Player、IconFont Loader及自定义字体的安装与启用情况,确保模板正常加载显示。 如果您已经安装了Pit…

    2026年9月1日
    500
  • 如何优化网站性能:使用Minify库的经验与教训

    可以通过一下地址学习composer:学习地址 在开发网站的过程中,提升页面加载速度一直是我的首要任务之一。曾经,我尝试使用 minify 库来压缩和合并 css 及 javascript 文件,以期提升网站的性能。然而,使用过程中遇到了不少问题和挑战,最终让我意识到 minify 可能不再是最佳选…

    用户投稿 2026年9月1日
    000
  • 电脑并排显示窗口怎么设置 教你几个简单小技巧

    电脑并排显示窗口怎么设置 教你几个简单小技巧电脑并排显示窗口怎么设置 教你几个简单小技巧电脑并排显示窗口怎么设置 教你几个简单小技巧电脑并排显示窗口怎么设置 教你几个简单小技巧

    在日常使用电脑时,我们常常需要同时查看两个文件夹、文档或网页,例如一边查阅资料一边撰写文档、从一个文件夹向另一个文件夹拖动文件,或者对比两份内容。频繁切换窗口不仅影响效率,还容易造成混乱。接下来,为你介绍几种实用的窗口并排显示方法,大幅提升你的工作效率。 一、利用Win键快捷键实现分屏显示 Wind…

    2026年9月1日 用户投稿
    200

发表回复

登录后才能评论
关注微信