링크 ux 변수 내용 의 삭제 와 교체
2432 단어 링크 ux 명령
${var#pattern} 从变量头部开始匹配模式,将符合的最短数据删除
${var##pattern} 从变量头部开始匹配模式,将符合的最长数据删除
${var%pattern} 从变量尾部开始匹配模式,将符合的最短数据删除
${var%%pattern} 从变量尾部开始匹配模式,将符合的最长数据删除
${var/oldPattern/newPattern} 将第一个符合旧模式的数据替换为新模式
${var//oldPattern/newPattern} 将全部符合旧模式的数据替换为新模式
\# 와% 는 기 호 를 삭제 합 니 다.키보드 에서\# 번 호 는 $의 왼쪽 에 있 기 때문에 왼쪽 부터 삭제 하고% 는 $문자 의 오른쪽 에 있 기 때문에 오른쪽 부터 삭제 합 니 다.
/교체 부호 입 니 다.
가장 많이 사용 되 는 장면: 1. 출력 파일 의 접미사
예 를 들 어 파일 의 접미사 이름 을 판단 하려 면
var 1 = me. txt echo ${var 1\# *.} txt 용\# 첫 번 째 점 과 이전 내용 이 일치 합 니 다. 삭제 하면 접미사 이름 txt 를 얻 을 수 있 습 니 다.
var = me. pdf. txt echo ${var\# *.} txt 파일 이름 에 점 이 있 으 면 이전 쓰기 가 실 효 됩 니 다. 이 때 는\# # # 로 최 장 데 이 터 를 일치 시 켜 야 합 니 다.
2. 출력 파일 이름
위의 예 와 같이 이번 에는 파일 이름 을 출력 하려 고 합 니 다.
echo ${var 1%%%.} me 에서 볼 수 있 습 니 다.% 는 오른쪽 에서 첫 번 째 점 과 오른쪽 문 자 를 삭 제 했 고 나머지 는 파일 이름 입 니 다.echo ${var%.} me. pdf 파일 이름 에 점 이 있 으 면 이전 쓰기 가 실 효 됩 니 다. 이 때% 로 가장 짧 은 매 칭 을 하면 됩 니 다.
3. 부분 문자 바 꾸 기
var = hello 123 hello 123 echo ${var/123/456} hello 456 hello 123 echo ${var/123/456} hello 456 hello 456 은 첫 번 째 조작 이 첫 번 째 123 을 456 으로 바 꾸 고 두 번 째 조작 은 모든 123 을 456 으로 바 꾸 는 것 을 볼 수 있 습 니 다.
개인 적 으로 셸 은 * 호 라 는 마스크 만 지원 합 니 다. 가장 짧 고 긴 데이터 와 일치 하 는 두 가지 모드 가 있 고 완전한 정규 표현 식 지원 이 없습니다.
인터넷 에서 이런 스 크 립 트 를 보 았 다.
##ipv4 or ipv6
tempIp="xxxx"
if [ "$tempIp" != "${#tempIp#*[0-9].[0-9]}" ]
then
##ipv4
else
##ipv6
fi
그 역할 은 ipv 4 주소 인지 ipv 6 주소 인지 판단 하 는 것 이다.그 원 리 는 이 규칙 에 맞 는 부분 을 삭제 하 는 것 입 니 다. 임의의 문자 + 1 개의 숫자 + 점 + 1 개의 숫자 를 시작 하기 때문에 ipv 4 주 소 는 반드시 일치 할 수 있 습 니 다.하지만 IPv 6 주 소 는 점 호 를 포함 하지 않 아 일치 하지 않 습 니 다.
root@debian2:~#
root@debian2:~# tempIp="192.168.0.103"
root@debian2:~#
root@debian2:~# echo ${tempIp#*[0-9].[0-9]}
68.0.103
root@debian2:~#
root@debian2:~#
root@debian2:~# tempIpv6="::1"
root@debian2:~#
root@debian2:~# echo ${tempIpv6#*[0-9].[0-9]}
::1
root@debian2:~#
그러나 이것 은 IPv 6 호 환 주소 에 점 이 있 는 상황 을 고려 하지 않 았 다.더 쉬 운 방법 은 IP 주소 에 콜론 이 포함 되 어 있 는 지 여 부 를 판단 하 는 것 이다.
##ipv4 or ipv6
tempIp="xxxx"
echo $tempIp | grep -q ":"
result=$?
if [ "$result" -eq 0 ]
then
##ipv6
else
##ipv4
fi
참고:https://blog.csdn.net/qq_31567335/article/details/80035510
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux 운영 기초 기능: 스 크 립 트 프로 그래 밍 과 Linux 명령$와 $@ 의 차이 $와 $@ 은 함수 나 스 크 립 트 에 전 달 된 모든 인 자 를 표시 합 니 다. 작은 따옴표 (") 에 포함 되 지 않 을 때"$1 ","$2 ","$n "형식 으로 모든 인 자 를 출력 합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.