我有 2 个文本文件需要在 Linux 环境中进行比较。它们来自两个不同的来源。它们都包含它们的源路径,因此比较将失败。 然而,只有路径的起点不同:在某些时候,路径的终点必须相同。
file1 包含:
file = import('/source-1/random/path/to/the/file/work/source/file.txt' , "corner")
file2 包含:
file = import('/s_2/file/work/source/file.txt' , "corner")
所以我想找到第一个 / 和 work 之间的任何内容,并将其替换为 * 例如,所以最后我得到:
在文件1中:
file = import('*/w/source/file.txt' , "corner")
在文件2中:
file = import('*/w/source/file.txt' , "corner")
我的 diff 不会再因此而失败。
我尝试了很多方法,但没有任何效果:(这就是为什么我现在请求你的帮助:) 我最好的尝试没有给任何东西:
([\/][a-zA-Z09]*[+-_]*[a-zA-Z0-9]*)*/work
删除整行会破坏比较文件的目的:(不过,这会更容易。我需要删除 linux 路径的第一部分(从第一个 / 到单词“work”)。它并不每次都相同文字字符串,除了“work”和“work”后面的任何内容应该相同
非常感谢您的大力帮助:)
awk '
{ key=$0; sub("/.*/work/","*/w/",key) }
NR==FNR {f1key=key; next }
f1key != key { print "<", f1key ORS ">", key; exit 1 }
' file1 file2