거리 번호에서 거리 이름 분할/추출 [중복]

거리 번호에서 거리 이름 분할/추출 [중복]

나는 몇 가지를 가지고 있습니다주소.csv이 형식으로

Street 1
Street 10
Street 100
Street 1000
Straße 1b
Straße1b
Street 1 B
Street, 1B
The Street 1B
The-Street 1B
The'Street 1B
The&Street 1B
The Str. 1B
Street 1-3
Street 1 - 3
Street 1A-3B
Street 1A -3 B
Super's Street-Str., 1 - 1000B

도로명과 도로번호를 모두 분리/추출할 수 있는 방법이 있나요?

출력 이름.csv

Street
Street
Street
Street
Straße
Straße
Street
Street
The Street
The-Street
The'Street
The&Street
The Str.
Street
Street
Street
Street
Super's Street-Str.

출력 숫자.csv

1
10
100
1000
1b
1b
1 B
1B
1B
1B
1B
1B
1B
1-3
1 - 3
1A-3B
1A -3 B
1 - 1000B

여기에서 공유하고 싶은 솔루션을 찾았습니다.

답변1

내 솔루션은

  1. 주소 형식이 유효한지 확인하세요.
if [[ ${var_street_and_number} =~ ^[[:alpha:][:space:]\.\'\&\-]+[,]?[[:space:]]?[0-9]{1,4}[[:space:]]?[a-zA-Z]?[[:space:]]?[-]?[[:space:]]?[0-9]{0,4}[[:space:]]?[a-zA-Z]?$ ]];
    then
    echo "Adress is format is valid :)";
else
    echo "Adress is format is invalid \!";
fi;

변수 var_street_and_number한 줄거리명 + 집번호 포함

거리와 번호가 많은(= 많은 행) 파일이 있는 경우 다음을 사용할 수 있습니다.

while read line; do
    if [[ ${line} =...
done < addresses.csv
  1. 주소 형식이 유효하면 다음을 사용할 수 있습니다.sed
sed 's/[,]\{0,1\}[[:space:]]\{0,1\}[[:digit:]].*$//' address.csv > output-name.csv
sed 's/^[^[:digit:]]*//' address.csv > output-number.csv

관련 정보