xml - Bash 脚本查找包含特定数字范围的文件名

标签 xml linux bash shell grep

我有一堆 .NFO 文件,其中包含有关电影的元数据(基本上为 XML 格式)。我想创建一个 bash 脚本,循环遍历所有 .NFO 文件并列出包含评级等于或小于 5.0 的文件名。评级位于 XML 标记 <rating>number</rating> 中.

我能够使用grep在文本文件中查找特定单词,它适用于:

grep "rating" . -R

结果是movie_name.nfo: <rating>7.5</rating>

我尝试了以下方法,但没有成功:

grep "<rating>[0.0-9.0]</rating>" . -R

提前致谢

最佳答案

使用 GNU grep:

grep -oP '<rating>\K(5\.0|[0-4]\.[0-9])(?=<)'

输出(例如)

4.3

关于xml - Bash 脚本查找包含特定数字范围的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842904/

相关文章:

c++ - 在 RedHat Linux Enterprise Developer Workstation 上编译 C++17 代码

linux - Apache Tomcat 始终运行 3 个相同的进程

bash - 如何在 Bash 脚本中使用 Expect

xml - 生成没有 .xsd 的 POJO?

Android Studio - 错误膨胀类 EditText

java - 匹配通配符严格,但找不到元素 'tx:annotation-driven' 'context:component-scan' 的声明

linux - 多线程应用程序的核心转储仅显示一个线程

linux - 具有所有内核的 Gzip

c - 在 linux 中保存 session 或进程状态

Python XML 仅获取直接子元素