
(초기 프로그래밍 불량으로 인해) 자유 텍스트 입력을 너무 많이 허용하는 주소 문자열이 있습니다. 이 상속된 혼란을 정리하는 과정에서 주소 필드 끝에 제거하고 싶은 쉼표가 자주(그리고 자주는 아님) 있다는 것을 발견했습니다.
문제는 (다시 말하지만, 자주!) 데이터를 입력하는 사람들(라인으로 지불...)이 다음과 같은 문자열을 입력한다는 것입니다.
`address_1_string , `
그것은 address_1_string이고 그 뒤에 두 개의 공백이 있고 그 뒤에 삭제하려는 쉼표가 있고 그 뒤에 두 개의 공백이 더 있습니다. 공백 수(쉼표 앞이나 뒤)는 임의적이며 일반적으로 0 - 5 사이입니다. address_string_1
자체에 내부(유효한) 쉼표가 있을 수 있다는 사실로 인해 문제가 더욱 복잡해집니다.
따라서 제가 찾고 있는 것은 줄 끝으로 이동하여 후행 공백, 첫 번째 쉼표 및 유효한 [a-zA-Z0-9] ([:alphanum: ]?) 문자가 발견되었습니다.
나는 정규식에 대한 개념을 가지고 있지만 이것은 내 급여 등급보다 높습니다. 이것은 Stackexchange의 첫 번째 게시물이므로 잘못된 위치에 있는 경우 리디렉션해 주세요. 티아.
답변1
< input sed 's/[[:space:],]*$//' > output
줄 끝의 공백과 쉼표 문자를 모두 삭제합니다.
파일을 제자리에서 편집하기 위해 일부 구현에는 의 옵션 에서 영감을 받은 옵션이 sed
있습니다 .-i
perl
-i
sed -i 's/[[:space:],]*$//' input-and-output # GNU, busybox, NetBSD, OpenBSD
sed -i '' 's/[[:space:],]*$//' input-and-output # FreeBSD, macOS