다음 명령과 그 결과를 고려하십시오.
$ echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>"|lynx -dump -stdin
a
b
c
$ echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>"|elinks -dump
a
b
c
둘 다 올바른 줄 수를 인쇄하지 않습니다. elinks
첫 번째 공백은 건너뛰고 빈 줄과 공백만 포함하는 후행 줄은 모두 건너뜁니다.
모든 공백과 줄바꿈을 강제로 적용 lynx
하거나 해석하는 방법이 있나요 ? elinks
나는 그들의 맨 페이지에서 명백한 것을 볼 수 없습니다.
sed
( 표시된 후 또는 기타 항목에 의해 억제되는 임시 문자를 사용하는 경우는 제외됩니다 .)tr
답변1
다음 명령을 사용하여 이 동작을 수정하도록 Lynx를 구성할 수 있습니다.COLLAPSE_BR_TAGSlynx.cfg와 같은 구성 파일에서:
FALSE로 설정 하면
COLLAPSE_BR_TAGS
Lynx는 직렬 BR 태그를 축소하지 않습니다. TRUE로 설정하면 두 개 이상의 동시 BR이 단일 줄 바꿈으로 축소됩니다. HTML에 추가 빈 줄을 삽입하는 효율적인 방법은 개행 문자만 포함하는 PRE 블록을 사용하는 것입니다.기본값은
COLLAPSE_BR_TAGS
TRUE 입니다.
답변2
Lynx v2.8.9(출시됨2018년 7월 8일) trim_blank_lines
빈 줄을 다듬을지 여부를 제어하는 옵션이 추가되었습니다.
collapse_br_tags
및 trim_blank_lines
옵션을 다음으로 설정합니다 .잘못된1은 빈 줄을 남깁니다.
1 Lynx는 "1", "+", "on", "true"를 참값으로 인식하고, "0", "-", "off", "false"를 거짓값으로 인식합니다.
https://www.mankier.com/1/lynx
예:
echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>d" \
| lynx -stdin -collapse_br_tags=0 -trim_blank_lines=0 -nomargins=1 -dump
결과:
a
b
c
d
불행하게도 위의 출력에 표시된 것처럼 잘못된 후행 개행 문자가 표시됩니다.
다행히도 이 문제는 추가 수정으로 쉽게 해결됩니다.sed 파이프라인 단계는 EOF에서 여러 줄 바꿈을 제거합니다.:
echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>d" \
| lynx -stdin -collapse_br_tags=0 -trim_blank_lines=0 -nomargins=1 -dump \
| sed ':loop; /^\n*$/{$d;N;}; /\n$/b loop'