如何使用grep提取不重复的字符串模式

how to extract the string pattern without duplicate using grep

我正在使用这个 grep 命令提取字符串

grep -Enro --exclude=\*features.cc --exclude=\*.h --exclude=\*switches.cc '\bk[A-Z]\w*' ./*

我的输出是:-

./vulkan/generate_bindings.py:409:kVulkanRequiredApiVersion
./vulkan/generate_bindings.py:588:kVulkanRequiredApiVersion
./vulkan/generate_bindings.py:603:kVulkanRequiredApiVersion
./vulkan/vulkan_instance.cc:24:kSkippedErrors
./vulkan/vulkan_instance.cc:39:kSkippedErrors
./vulkan/vulkan_instance.cc:89:kVulkanRequiredApiVersion
./vulkan/vulkan_instance.cc:95:kVulkanRequiredApiVersion
./vulkan/vulkan_instance.cc:291:kVulkanRequiredApiVersion
./vulkan/vulkan_instance.cc:292:kVulkanRequiredApiVersion
./vulkan/vulkan_surface.cc:27:kPreferredVkFormats
./vulkan/vulkan_surface.cc:32:kPreferredVkFormats
./vulkan/vulkan_surface.cc:79:kMinImageCount skia_bindings/gles2_implementation_with_grcontext_support.cc:324:kVertex_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:327:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:332:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:339:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:343:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:348:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:354:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:361:kStencil_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:364:kPixelStore_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:368:kPixelStore_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:371:kProgram_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:374:kProgram_GrGLBackendState

但是输出中有重复项。相同的字符串重复。我想提取唯一的字符串。有人可以指导我完成这个吗?提前致谢。

我需要如下输出:

./vulkan/generate_bindings.py:409:kVulkanRequiredApiVersion ./vulkan/vulkan_instance.cc:24:kSkippedErrors ./vulkan/vulkan_instance.cc:89:kVulkanRequiredApiVersion ./vulkan/vulkan_surface.cc:27:kPreferredVkFormats ./vulkan/vulkan_surface.cc:79:kMinImageCount ./skia_bindings/gles2_implementation_with_grcontext_support.cc:324:kVertex_GrGLBackendState ./skia_bindings/gles2_implementation_with_grcontext_support.cc:339:kStencil_GrGLBackendState

我不会重复相同的字符串。

grep 有一个 -m 开关,这意味着您可以限制匹配的最大数量。使用 -m 1 应该可以解决您的问题,因此您会得到如下内容:

grep -Enro -m 1 --exclude=\*features.cc --exclude=\*.h --exclude=\*switches.cc '\bk[A-Z]\w*' ./*