CentOS 5.6을 사용하여 텍스트 파일 형식을 다시 지정하여 모든 텍스트를 한 줄에 넣습니다.

CentOS 5.6을 사용하여 텍스트 파일 형식을 다시 지정하여 모든 텍스트를 한 줄에 넣습니다.

디버깅 목적으로 HTML에 저장하는 210줄의 HTML 블록이 있습니다.

예상한 대로 HTML은 그에 따라 형식이 지정되므로 공백과 탭이 있는 파일에 저장됩니다. 이 파일을 변환하여 모든 HTML을 한 줄에 넣을 수 있습니까? CentOS 5.6을 사용하고 있습니다.

예를 들어, 이것을 변경하는 쉬운 방법이 있습니까?

<div id="crmpicco">
     <div class="ayrshireminis">
... content in here ...
     </div>
</div> 

이와 관련하여:

<div id="crmpicco"><div class="ayrshireminis"></div></div>

답변1

당신은 찾을 수 있습니다tr실용적이고 도움이 됩니다. cat INPUT_FILE | tr -d '\n\r' > OUTPUT_FILE일을 하는 것 같습니다.

  • -d대신 문자를 삭제하세요.번역하다

man tr추가로 수행할 수 있는 작업에 대해 tr자세히 알아보세요 .

답변2

이를 수행하는 데 사용할 수 있는 도구가 많이 있습니다. Perl의 솔루션은 다음과 같습니다.

명령줄에서:

perl -p -e 's/^ *//; s/ *$//; chomp' < FILE > OUTFILE

이를 FILE파일 이름과 OUTFILE출력을 쓰려는 새 파일로 바꾸십시오.둘 다에 동일한 파일 이름을 사용하지 마십시오.

기능: perl -p각 입력 줄에서 Perl 스크립트를 실행하고 결과를 출력에 씁니다. 및 연산자를 사용하여 원하는 파일에 대한 <입력 및 출력을 설정합니다 . >스크립트 자체는 이 -e옵션을 따르며 세 가지 대체 항목을 만듭니다.

s/^ *//: 줄 시작 부분( )에 있는 공백(공백, 별표)을 ^아무 것도 없는 것으로 바꿉니다(명령이 로 s/this/that/변경됨 ). 공백 대신 탭을 선호하는 경우 다음을 수행하여 원하는 만큼의 공백이나 탭( )을 바꾸세요.thisthats/^[ \t]*//\t

s/ *$//: 동일하지만 줄 끝 부분에 있습니다( $).

chomp:perl-speak는 줄 끝의 개행 문자를 제거하는 데 사용됩니다.

답변3

awk '{ORS=""; print $0}' textfile
<div id="crmpicco">     <div class="ayrshireminis">... content in here ...     </div></div>

게다가 이미 지적했듯이 이 tr유틸리티는 이런 경우에 매우 유용합니다. 개행 제거그리고이 유틸리티를 모든 탭/공백을 동시에 사용하려면 tr다음을 수행하십시오.

# cat textfile |tr -d '\n\r" "'
<divid=crmpicco><divclass=ayrshireminis>...contentinhere...</div></div>

노트: 공백 대신 탭을 사용하는 경우 다음을 수행하십시오.

cat textfile |tr -d '\n\r\t'

관련 정보