파일을 생성하려고 하는데 편집자가 vi
각 줄의 끝에 파일을 추가하는 것 같습니다. $
이 문제의 원인이 무엇인지, 이런 일이 발생하지 않도록 방지하는 방법을 모르겠습니다 vi
.
vi file.txt
12345
abcde
cat -v -e file.txt
12345$
abcde$
wc file.txt
2 2 12
$
나는 마지막에 문자 수에 의존하는 자동화 파일을 깨뜨리는 것을 원하지 않습니다 . 실제로 한 줄에 5자가 있는데 단어 수가 12자로 표시되는 이유는 무엇입니까?
VIM 버전 7.4.629
답변1
@steeldriver의 의견이 정확합니다. cat
줄 끝을 표시합니다 $
( vi
정중하게 요청하면 ":set list"를 사용하세요). 줄당 추가 문자는 개행 문자(각 텍스트 줄 끝에 있는 보이지 않는 문자)입니다.
그냥 계산하고 싶다면인쇄 가능wc
텍스트 의 경우 tr
옵션을 사용하여 파일을 처리하기 전에 필터링할 수 있습니다 -d
. 다음은 자신을 예로 사용하는 스크립트입니다.
#!/bin/sh
cat $0 |wc
cat $0 | tr -d '\r\n\t' | wc
cat $0 | tr -d '[:cntrl:]' |wc
마지막 줄은 사용하기에는 이식성이 부족할 수 있지만(POSIX, 내부에확장하다부분). 그러나 원칙에 대한 단서가 주어지면 사용 가능한 모든 항목에서 실행될 수 있습니다.