sed match pattern N 회


14

파일을 2 단어 씩 청크로 나눕니다.

$cat tmp
word1 word2 word3 word4 word5 word6 word7
$sed -e 's/word. word. /&\n/g' tmp
word1 word2 
word3 word4 
word5 word6 
word7
$sed -e 's/word. \{2\}/&\n/g' tmp
word1 word2 word3 word4 word5 word6 word7

마지막 명령이 이전 명령과 동일한 결과를 줄 것으로 기대했습니다. 뭐가 잘못 되었 니?

답변:


17

죄송합니다. 게시 직후에 알아 낸 것 같습니다.

그것은해야합니다

sed -e 's/\(word. \)\{2\}/&\n/g' tmp

분명히 괄호는 선행 공간뿐만 아니라 {2}전체 패턴에 조건을 적용하기 위해 필요 word.합니다.


3
또는 사용sed -E 's/(word. ){2}/&\n/g' tmp
Cyrus


1

N 번 일치하는 일반적인 경우 :

$ perl -ple '$N=3;s/(\S+ ){$N}\K/\n/g' tmp
word1 word2 word3 
word4 word5 word6 
word7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.