Linux 쉘 스크립트에서 문자열의 특정 문자 제거 [닫기]

Linux 쉘 스크립트에서 문자열의 특정 문자 제거 [닫기]

문자열에서 숫자 a :와 2를 제거해야 하는데 다음과 같습니다."

"9.cgadjka.jsjdaj:12345"

나만 필요해

9.cgadjka.jsjdaj

Linux 터미널에서 스크립트를 작성하는 것은 이번이 처음이므로 지금은 이에 대해 잘 모릅니다.

답변1

사용sed

$ echo '"9.cgadjka.jsjdaj:12345"' | sed 's/:.*\|"//g'
9.cgadjka.jsjdaj

일치 :및 그 뒤의 모든 문자를 일치시키거나 "삭제합니다 .

답변2

GNU를 사용하면 grep다음과 같은 작업을 수행할 수 있습니다.

$ echo '"9.cgadjka.jsjdaj:12345"' | grep -Po '(?<=").*(?=:)'
9.cgadjka.jsjdaj

답변3

댓글에서 해결책을 보실 수 있습니다 sed. 다음 명령을 사용하여 이러한 기호를 제거할 수도 있습니다 awk.

echo "9.cgadjka.jsjdaj:12345" |awk -F: '{print $1}'

큰따옴표가 문자열의 일부인 경우 다음을 사용해야 합니다.

STRING='"9.cgadjka.jsjdaj:12345"'
echo $STRING |awk -F'[":]' '{print $2}'

STRING큰따옴표( )가 있는 문자열을 포함합니다 ."

관련 정보