디버깅 목적으로 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/
변경됨 ). 공백 대신 탭을 선호하는 경우 다음을 수행하여 원하는 만큼의 공백이나 탭( )을 바꾸세요.this
that
s/^[ \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'