csv 파일에서 열(UPC 번호)을 추출하고 파일 길이가 14보다 작은 경우 끝에 공백을 추가해 보세요. 하지만 출력 끝에 ^M이 있는데 제거하는 방법을 모르겠습니다.
이 명령은 이 열이 아닌 다른 열에도 작동합니다.
awk -F, '{print $8}' $FILE | awk '{printf("%-14s\n", $0) }' > $TEMP/upc
vi 출력:
861601000109^M
736040531685^M
고양이 출력:
61601000109
36040531685
답변1
파일이 Windows 텍스트 편집기에서 열리고 저장되었을 수 있습니다.
UNIX 기반 시스템의 줄 종결자는 Windows의 줄 종결자와 다릅니다.
DOS/Windows 컴퓨터에서 생성된 텍스트 파일은 Unix/Linux에서 생성된 파일과 줄 끝이 다릅니다. DOS는 줄 바꿈과 줄 바꿈("\r\n")을 줄 종결자로 사용하는 반면 Unix는 줄 바꿈("\n")만 사용합니다. 줄 끝이 올바르게 번역되도록 하려면 Windows와 Unix 컴퓨터 간에 파일을 전송할 때 주의가 필요합니다.
파일을 읽을 때는 cat
EOL 문자가 표시되지 않지만, 파일 읽기 를 사용하면 vi
EOL 문자가 표시됩니다.
^M
아마도 파일에서 제거하는 가장 쉬운 방법은 스트림 편집기를 사용하여 문자를 sed
삭제하는 것 입니다. ^M
다음 명령을 입력하세요.% sed -e "s/^M//" filename > newfilename
를 입력하려면 ^M
을 입력 CTRL-V
한 다음 을 입력하세요 CTRL-M
. 즉, CTRL 키를 누른 상태에서 V와 M을 계속 누르십시오.