정규식(bash)을 사용하여 변수에 값을 할당하는 방법은 무엇입니까?

정규식(bash)을 사용하여 변수에 값을 할당하는 방법은 무엇입니까?

Bash의 변수 할당 라인에 정규식을 사용하고 싶습니다

예를 들어

oldip="14\.130\.31\.172"
oldip_a="14.130.31.172" << How to use regex to del all '\'? and assign to oldip_a

어떤 아이디어가 있나요?

답변1

을 제거하려면 \bash 매개변수 대체를 사용하십시오.
//교체한다는 뜻이다모두... (단일은 /첫 번째 문자만 바꾸는 것을 의미합니다.)
//\\모든 문자를 바꾸는 것을 의미합니다 \(백슬래시) 문자는
/}아무것도 바꾸지 않는다는 것을 의미합니다( /와 끝 사이에는 아무것도 바꾸지 않음).}

ip="14\.130\.31\.172"
echo "${ip//\\/}"

산출

14.130.31.172

또는 \.이러한 IP 주소가 많은 파일에서 여러 작업을 수행해야 하는 경우 수정된 각 값을 배열 항목에 할당할 수 있습니다.

ip=($(printf '
172.31.130.14
14\.130\.31\.172
33\.135\.220\.0
' | sed 's/\\//g'))
for ((i=0;i<${#ip[@]};i++));do
  echo "${ip[i]}"
done

산출

172.31.130.14
14.130.31.172
33.135.220.0

? ! ..방금 두 번째 데이터 항목이 첫 번째 데이터 항목의 반대인 것을 확인했습니다..이것이 원하는 결과입니까? (아마 아닐지도 모르지만 궁금하네요)..

관련 정보