如何使用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*' ./*
我正在使用这个 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*' ./*