热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何从差异比较中查找和排除字符串正则表达式文字?-HowdoIlookforandexcludestringregexliteralsfromdiffcomparison?

Imtryingtowritealinuxdiffstatementtoignorealllinedifferencesthathavealiteralstring

I'm trying to write a linux diff statement to ignore all line differences that have a literal string somewhere in them. (In my case I want to ignore lines with url differences.)

我正在尝试编写一个linux diff语句来忽略在其中某处有文字字符串的所有行差异。 (在我的情况下,我想忽略带有url差异的行。)

Currently I've tried

目前我已经尝试过了

diff -I '^insert.*' file1.txt file2.txt > outputDiff.txt

The output here took out lines that started with insert, so that's a step in the right direction, but I need to remove a longer string literal (url) with lots of periods and slashes.

这里的输出取出了以insert开头的行,所以这是向正确方向迈出的一步,但我需要删除一个带有大量句点和斜杠的较长字符串文字(url)。

To be exact: I need to look for lines that have:

确切地说:我需要查找具有以下内容的行:

ta.com/nmo/nmdr/templates/nmdr.css\

somewhere in them, and exclude them from the diff result.

在它们的某个地方,并将它们从diff结果中排除。

How do I look for a literal string with a regex that will work within a diff -I statement? (Include the start of the line and the end of the line if it's needed for my diff statement)

如何查找带有可在diff -I语句中使用的正则表达式的文字字符串? (如果我的diff语句需要,则包括行的开头和行的结尾)

2 个解决方案

#1


0  

You need to escape . and \ in the regexp.

你需要逃脱。和\在正则表达式。

diff -I 'ta\.com/nmo/nmdr/templates/nmdr\.css\\' file1.txt file2.txt > outputDiff.txxdt

#2


0  

In one command:

在一个命令中:

diff -I 'ta\.com/nmo/nmdr/templates/nmdr\.css\\' file1.txt file2.txt \
  > outputDiff.txt

This is escaping the special . character (which usually means "any character"), and also handling the literal backslash.

这是特殊的逃避。字符(通常表示“任何字符”),也处理字面反斜杠。

Or, you could do it (slightly less efficiently) in a chained command:

或者,您可以在链式命令中执行此操作(效率稍低):

diff file1.txt file2.txt | fgrep -v 'ta.com/nmo/nmdr/templates/nmdr.css\\' \
  > outputDiff.txt

fgrep, or equivalently grep -F, stands for "fast grep" and automatically escapes special characters like .

fgrep,或等效grep -F,代表“快速grep”并自动转义特殊字符,如。


推荐阅读
  • python开发mysql:单表查询&多表查询
    一单表查询,以下是表内容二多表查询,一下是表内容三总结&表创建过程单 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本文探讨了如何使用pg-promise库在PostgreSQL中高效地批量插入多条记录,包括通过事务和单一查询两种方法。 ... [详细]
  • 正则表达式是一种强大的文本匹配工具,但在不当使用时,也可能成为安全漏洞的源头,特别是当它们被恶意利用以触发拒绝服务(DoS)攻击时。本文将深入探讨正则表达式如何成为攻击者的目标,并提供防范策略。 ... [详细]
  • 本文探讨了在JavaScript中执行字符串形式代码的多种方法,包括使用eval()函数以及跨页面调用的方法。同时,文章详细介绍了JavaScript中字符串的各种常用方法及其应用场景。 ... [详细]
  • 本文介绍了数据持久化的概念,重点讲解了MySQL数据库的基本操作,包括数据的查询、插入、更新及多表连接等,旨在帮助初学者快速掌握MySQL的核心功能。 ... [详细]
  • 本文通过一个简单的 C++ 示例,深入分析了当使用 `vector::resize` 方法调整向量大小时,对象的构造函数和析构函数被调用的具体情况。示例代码展示了如何创建一个包含自定义类的对象的向量,并通过调整其大小来观察构造和析构的过程。 ... [详细]
  • 正则表达式是一种强大的文本处理工具,通过特定的字符序列形成搜索模式,用于在文本中查找或替换符合模式的数据。本文将详细介绍正则表达式的基本概念、元字符、表达式及其实现方式。 ... [详细]
  • grep、sed、awk一、grep的用法1、grep简介grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep包 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 优化JavaScript中的多条件判断逻辑
    本文探讨了在JavaScript中遇到复杂逻辑判断时,如何通过不同的方法优化if/else或switch语句,以提高代码的可读性和可维护性。 ... [详细]
  • 本文详细总结了Java中String类的构造函数及常用方法,包括构造函数的多种形式和方法的具体应用,旨在帮助开发者更好地理解和使用String类。 ... [详细]
author-avatar
欣欣2602916441
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有