파일에서 중복을 어떻게 제거합니까? 단순한 선은 아니지만 블록입니다. 메모장 + + 또는 다른 도구를 사용하여 중복 된 블록을 제거하는 방법은 무엇입니까?
는이 같은 큰 목록을 가지고 : 내가 PARAM1 = ABC와 PARAM2 = KBW로,이 예제에서는 블록을 중복 항목을 제거 할 필요가define service {
param1 ABC
param2 XYZ
param3 123456
}
define service {
param1 KBW
param2 XYZ
param3 100100
}
define service {
param1 PYJ
param2 XYZ
param3 99842
}
define service {
param1 ABC
param2 XYZ
param3 123456
}
define service {
param1 KBW
param2 XYZ
param3 100100
}
. 나는 어떻게 선을 제거하기 위해 이것을하는지 안다. 그러나 블록으로 나는 모른다.
find: (define service \{.*?\})(.*?)\1
replace: $1$2
을하지만 더 이상 경기가있을 때까지 당신은 완전히 대체하기 버튼을 눌러해야합니다
1)에 대해 같은 과정을 반복, 더 DUPS 당신의 기준을 찾을 수 없습니다 'PARAM1 = ABC와 PARAM2 = KBW' PARAM2 오타인가? 2) dups를 제거한다는 것은 하나의 블록을 고유하게 남겨 두는 것을 의미합니까? 또는 중복이 발견되면 dup과 동일한 모든 블록을 제거해야합니까? 3) 다른 도구? vim/awk/perl/...에 포함됩니까? 예제를 보면 awk가 쉽게 해결할 수 있습니다. – Kent
PHP를 사용하면 $ string = implode (PHP_EOL.PHP_EOL, array_unique (preg_split ('/ (? <=)) (\ r \ n? \ n) + (? = \ w) /' , $ string))); echo $ string;'[demo] (http://codepad.org/axUoApXs). – HamZa
켄트, 나는 오직 하나의 사건을 지키고 다른 사건을 제거해야한다. 이 예에서 4 번째 및 5 번째 블록을 제거해야합니다. – dellasavia