다중 라인 정규 표현식에 대한 Oneliner, \ n] /] / g?


0

누군가가 간단한 줄 바꿈을 사용하여 줄 바꿈을 제거 할 수 있습니까?

에서 정력 나는 사용한다 %s/,\n]/]/g

이것은 매우 단순한 일회용 IMHO로 가능해야하지만 어떻게해야합니까?


먼저 줄 바꿈을 제거한 다음 sed를 사용하십시오. tr -d '\ r \ n'| sed -e "s /, \ n] /] / g"이제는 모든 것이 하나의 긴 줄에 있습니까?
Bastl

4
"특정 줄 바꿈"? 어느 것?
m0skit0

패턴에서 발생하는, 즉 둘러싸인]
Bastl

관심이 있다면 Perl을 사용하여 답변을 게시 할 수 있습니다.
m0skit0

그래, pls, 아무것도 인정하지만 펄은 내가 제일 좋아하는 것은 아니지만 ... :-)
Bastl

답변:


1

이것은 작동해야합니다 :

perl -e "$_ = join('', <>); s/,\n]/,]/g; print;" < input_file > output_file

aii, 긴 한 줄짜리예요, 실제 vim 명령은 아주 간단합니다 ...
Bastl

1
누가 신경 쓰냐? 문제는 실제로 파일 입력 (& lt; & gt;)입니다. 결과 배열을 파일에서 단일 행으로 변환하여 처리해야합니다 ( $ _ = join ( '', & lt; & gt;); ) 파일은 "\ n"에 의해 정확하게 분할되기 때문에. 누구든지 하나의 단일 스칼라에서 파일을 읽는 방법을 알고 있다면, 그것을 더 짧은 것으로 수정하는 것이 좋을 것입니다.
m0skit0

1
*** 누군가가 하나의 단일 스칼라 로컬 $ / = undef; $ string = & lt; FILE & gt;;에서 파일을 읽는 방법을 알고 있다면;
Yordan Georgiev

나는 그동안 그것을 배웠지 만, 어쨌든 감사합니다 :)
m0skit0

1

이것은 당신을 위해 일할 수도 있습니다 :

sed ':a;$!{N;ba};s/,\n]/]/g' file

아니면 이거:

sed 'N;s/,\n]/]/;P;D' file

0

모든 * .c 파일에 대해 여러 줄 바꾸기

perl -p -i.bak -e 's#to_find\n\n#to_replace#g' *.c

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.