bash를 통해 text/csv 파일에서 EOF 앞의 줄 바꿈을 제거하는 방법

bash를 통해 text/csv 파일에서 EOF 앞의 줄 바꿈을 제거하는 방법

txt다음은 or 파일에서 수신한 데이터의 예입니다 csv( 참조 EmEditor).

문제 데이터

그러나 이 데이터를 내 소프트웨어에 업로드할 때 마지막에 빈 행이 문제를 일으킵니다. 데이터가 아래와 같아야 합니다.

올바른 데이터

누구든지 마지막 줄 명령을 제거하고 파일 끝 명령을 마지막 줄로 이동하는 코드를 작성할 수 있습니까?

답변1

이를 수행하는 방법에는 여러 가지가 있습니다.

그리고 printf:

printf "%s" "$(<file)"

사용법 perl( -i파일의 내부 편집용):

perl -pe 'chomp if eof' file

또는 다음을 사용하십시오 head(마지막 문자가 개행 문자라고 확신하는 경우).

head -c -1 file

답변2

당신은 이것을 시도 할 수 있습니다

sed 'N; $ s/\n//; P; D;' file

답변3

이것은 또한 트릭을 수행하고 더 읽기 쉬워야 합니다(나의 편향된 의견으로는):

 awk '{ if ( NR == 1) { printf("%s",$0); } else { printf("\n%s", $0); }}' file

답변4

그리고 awk:

awk 'NR > 1 { print prev } { prev = $0 }' file

또는 다음과 같이 sed:

sed '$d' file

관련 정보