Bash의 문자열에서 마지막 n 문자를 제거하는 방법은 무엇입니까?
var
Bash 스크립트에 문자열을 보유 하는 변수 가 있습니다.
echo $var
"some string.rtf"
나는이 문자열의 마지막 4 개 문자를 제거하고 새 변수에 결과를 할당 할 var2
그래서,
echo $var2
"some string"
어떻게해야합니까?
당신은 이렇게 할 수 있습니다 :
#!/bin/bash
v="some string.rtf"
v2=${v::-4}
echo "$v --> $v2"
문자열 끝에서 네 문자를 제거하려면을 사용하십시오 ${var%????}
.
최종 .
사용 후 모든 것을 제거 합니다 ${var%.*}
.
사용 변수 확장 / 하위 문자열 교체 :
$ {var / % Pattern / Replacement}
var의 접미사가 Pattern과 일치하면 Replace를 Pattern으로 대체하십시오.
그래서 당신은 할 수 있습니다 :
~$ echo ${var/%????/}
some string
또는
항상 같은 4 글자가 있다면
~$ echo ${var/.rtf/}
some string
항상 끝나는 경우 .xyz
:
~$ echo ${var%.*}
some string
문자열 길이를 사용할 수도 있습니다.
~$ len=${#var}
~$ echo ${var::len-4}
some string
또는 단순히 echo ${var::-4}
나를 위해 일한 것은 다음과 같습니다.
echo "hello world" | rev | cut -c5- | rev
# hello w
그러나 파일에서 줄을 자르는 데 사용했기 때문에 어색해졌습니다. 실제 용도는 다음과 같습니다.
cat somefile | rev | cut -c5- | rev
cut
가변적 인 길이의 행이 필요한 경우 나쁜 시작 위치에서 트리밍하는 것만 가능합니다. 따라서이 솔루션 rev
은 문자열을 뒤집고 ( ) 이제 끝 위치와 관련이 있으며 cut
언급 한대로 사용 하고 rev
원래 순서로 되돌립니다 (다시 ).
sed를 사용할 수 있습니다.
sed 's/.\{4\}$//' <<< "$var"
예:
$ var="some string.rtf"
$ var1=$(sed 's/.\{4\}$//' <<< "$var")
$ echo $var1
some string
나는 다음을 시도했고 그것은 나를 위해 일했다 :
#! /bin/bash
var="hello.c"
length=${#var}
endindex=$(expr $length - 4)
echo ${var:0:$endindex}
산출: hel
이것은 문자열의 크기를 계산하여 나를 위해 일했습니다.
반환해야 할 값을 에코 한 다음 아래와 같이 저장해야합니다.
removechars(){
var="some string.rtf"
size=${#var}
echo ${var:0:size-4}
}
removechars
var2=$?
어떤 문자열
아래 예제가 도움이되기를 바랍니다.
echo ${name:0:$((${#name}-10))}
-> ${name:start:len}
- 위의 명령에서 name은 변수입니다.
start
문자열 시작점입니다len
제거해야하는 문자열의 길이입니다.
예:
read -p "Enter:" name
echo ${name:0:$((${#name}-10))}
산출:
Enter:Siddharth Murugan
Siddhar
Note: Bash 4.2 added support for negative substring
참고URL : https://stackoverflow.com/questions/27658675/how-to-remove-last-n-characters-from-a-string-in-bash
'Programing' 카테고리의 다른 글
문자열의 시작과 끝에서 공백 자르기 (0) | 2020.06.09 |
---|---|
UITableView, 구분자 색은 어디에 설정합니까? (0) | 2020.06.09 |
준비되지 않은 파일의 체크 아웃을 취소 할 수 있습니다. (0) | 2020.06.09 |
오류 : 'brew link'단계가 성공적으로 완료되지 않았습니다 (0) | 2020.06.09 |
삽입 업데이트 트리거 삽입 또는 업데이트 여부를 결정하는 방법 (0) | 2020.06.09 |