파일의 마지막 텍스트 줄을 삭제하는 방법은 무엇입니까?

파일의 마지막 텍스트 줄을 삭제하는 방법은 무엇입니까?

저는 Bash 쉘 스크립팅을 사용하여 Javascript 배열이 포함된 텍스트 파일을 작성하고 있습니다. Javascript에 대한 내 이해에 따르면 배열의 마지막 항목에는 쉼표가 있을 수 없습니다. 내 JavaScript에서는 오류가 발생합니다.

다른 코드를 사용하여 생성된 항목 목록이 있고 결과는 다음과 같습니다.

text0161: "blah",
text0162: "blah blah",
text0163: "blah blah blah",

마지막 줄 text0163: "blah blah blah",에서 뒤따르는 쉼표를 제거하여 가 되도록 해야 합니다 text0163: "blah blah blah".

처리 중 현재 시점에는 아무것도 없으므로 text0163: "blah blah blah"파일의 마지막 줄을 찾아 쉼표를 제거할 수 있습니다. 그러나 행의 내용이 변경될 수 있으므로 항상 정확하지는 않습니다 text0163: "blah blah blah",. 와 같은 다른 것으로 바뀔 수 있습니다 text2020: "doobie doobie doo",.

나는 sed를 사용하여 다음과 같이 쉼표를 제거할 수 있다는 것을 알고 있습니다.

sed -i 's@,@@g' file.txt

하지만 어떻게 해야할지 모르겠어요오직마지막 줄에 이렇게 하세요.

답변1

특정 명령/정규식의 주소를 지정할 수 있습니다. 마지막 줄은 으로 표시되므로 $귀하의 경우에는 다음과 같습니다.

sed -i '$ s/,$//' file.txt

정규식에서 더 일반적으로 사용되므로 your @로 대체 했습니다 ./

이 정규식은 또한 줄 끝의 쉼표만 제거합니다. 즉, 쉼표 뒤에 공백이 있거나 쉼표가 인용된 텍스트 내에 있으면 제거되지 않습니다.

답변2

sed에서는 마지막 줄을 일치시킬 수 있으며 현재 줄을 삭제하는 $명령이 있습니다 .d

sed -i '$d' file.txt

관련 정보