2017-12-04 22 views
0

ASCII 파일에 하나의 (긴) 줄만있는 텍스트 파일이 있습니다. 나는 그것에 정상적인 sed하고 싶다 그러나 아무것도 작동하지 않는다. vi는 다음과 같이 보여줍니다 : 라인이 $ 으로 끝나는리스트를 설정하십시오. vi로 수동으로 새 라인을 추가하면 sed 명령이 작동합니다. 내가 이렇게하면 :줄 바꿈이없는 ASCII 파일에 sed

echo $(cat file) |sed 's/.*test//g' 

도 작동합니다. 왜 sed cant는 그걸로 일할 수 있습니까?

+0

죄송합니다. 난 그냥 대체 할 싶어요 –

답변

0

명령문 echo $(cat file)은 공백을 매우 잘 보존하지 않습니다.

당신은 아주 쉽게와 손길이 닿지 않은 파일의 나머지 부분을 유지하면서, 줄 바꿈을 추가 할 수 있어야한다 : 그냥 일부sed 구현이 실제로 같이 할 것을 명심

(cat inputFile ; echo) | sed 'something or other' 

매우 긴 줄. POSIX는 8K 최소 요구 사항만을 요구했습니다. GNU 변형을 사용하고 있다면 괜찮을 것입니다.

+0

매개 변수없이 간단한 'echo' 대신'printf "\ n"'를 사용하는 이유는 무엇입니까? '(...)'서브 쉘 대신'{...; }'잘 작동 할 것입니다. – janos