Bash
grep 以相同子字元串開頭和結尾的所有字元串
我需要 grep 所有以至少 4 個字母的相同子字元串開頭和結尾的行。子字元串不能重疊。
所以想像我們有輸入:
ABCDOOOPABCD BBBBOLPOKBBBB ACLMDJKAC 12345---12345 ABCD
那麼輸出應該是:
ABCDOOOPABCD BBBBBOLPOKBBBBB 12345---12345
grep
與基本正則表達式一起使用:grep -x '\(.\{4,\}\).*\1' file
grep
與擴展正則表達式 ( ) 一起使用-E
:grep -Ex '(.{4,}).*\1' file
-x
僅對全行匹配使用選項。正則表達式的解釋:
(.{4,})
一組至少 4 個字元.*
從 0 到無限個字元\1
對第一個擷取的組的反向引用(在這種情況下(.{4,})
)