하나 이상의 줄 바꿈으로 끝나고 하나의 줄 바꿈으로 끝나야하는 파일이 있습니다. Bash / Unix / GNU 도구로 어떻게 할 수 있습니까?
잘못된 파일 예 :
1\n
\n
2\n
\n
\n
3\n
\n
\n
\n
수정 된 파일 예 :
1\n
\n
2\n
\n
\n
3\n
다시 말해 : EOF와 파일의 마지막 개행 문자 사이에는 정확히 하나의 개행 문자가 있어야합니다.
참조 구현
파일 내용을 읽고 끝에 줄 바꿈이 더 이상 없어 질 때까지 한 줄 바꿈을 잘라내어 다시 쓰십시오.
#! /bin/python
import sys
with open(sys.argv[1]) as infile:
lines = infile.read()
while lines.endswith("\n\n"):
lines = lines[:-1]
with open(sys.argv[2], 'w') as outfile:
for line in lines:
outfile.write(line)
설명 : 물론, 더 우아하다면 배관이 허용됩니다.