GPS 데이터를 복구하는 정규식

GPS 데이터를 복구하는 정규식

Linux에서 텍스트 파일의 GPS 데이터를 수정하려고 합니다.

잘못된 문자열 모델:49:29:37N 005:28:39E

2자리 또는 3자리: 2자리 또는 3자리: 2자리 또는 3자리(N|S) 2자리 또는 3자리: 2자리 또는 3자리: 2자리 또는 3자리(E|W)

올바른 문자열 모델:49:29:37 N 005:28:39 E

2자리 또는 3자리: 2자리 또는 3자리: 2자리 또는 3자리(N|S) 2자리 또는 3자리: 2자리 또는 3자리: 2자리 또는 3자리(E|W)

누구든지 내가 이 일을 하도록 도와줄 수 있나요?

감사해요

니콜라스

답변1

가능한 네 글자 모두 앞에 공백을 삽입하십시오 sed.

sed 's/[NESW]/ &/g' file

산출:

49:29:37 북쪽 005:28:39 동쪽

답변2

나침반 방향을 나타내는 숫자와 문자 사이에 공백을 추가하려는 경우 다음이 효과가 있을 것 같습니다.

sed -E 's/([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3})([NS])\s+([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3})([EW])/\1 \2 \3 \4/g' input.txt

input.txt또는 출력을 파일로 원할 경우 stdin에서 지정하고 파이프 하지 말고 > output.txt끝에 추가하십시오.

이는 N/S와 다음 좌표에서 시작하는 숫자 사이에 공백 또는 기타 공백 문자를 허용하고 해당 위치에 단일 공백을 출력합니다. 필요한 경우 조정이 이루어질 수 있습니다.

편집: 일부 입력 데이터에 이미 두 좌표 중 하나의 좌표 번호와 방향 문자 사이에 공백이 있지만 둘 다에는 없는 경우 다음을 시도하십시오.

sed -E 's/([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3}) *([NS])\s+([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3}) *([EW])/\1 \2 \3 \4/g' input.txt

관련 정보