단어 패턴에서 문자 제거

단어 패턴에서 문자 제거

p.G345L내 문장의 단어에는 및 와 같은 패턴이 있습니다 p.X31Z. 삭제해야 p.하므로 G345LX31Z.

답변1

정의하기 위해 무엇을 사용하고 있는지는 확실하지 않지만 sed를 통해 쉽게 파이프할 수 있습니다. GNU 구현의 경우 sed'\b'는 패턴 일치에서 단어 경계를 나타내며, 이를 사용하여 "stop"과 같은 문장의 일부를 선택하지 않도록 할 수 있습니다.

$ cat file
p.G345L sentence stop.  p.X31Z part of another sentence
$ sed 's/\bp\.//g' file 
G345L sentence stop.  X31Z part of another sentence

답변2

패턴 p.뒤에 대문자, 일련의 하나 이상의 십진수, 대문자가 뒤따르는 경우 이는 (POSIXly) 다음과 같습니다.

sed 's/p\.\([[:upper:]][[:digit:]]\{1,\}[[:upper:]]\)/\1/g'

답변3

여러 가지 방법으로 이 작업을 수행할 수 있습니다.

그리고 perl:

$ echo "p.G345L and p.X31Z" | perl -pe 's/p\.//g'
G345L and X31Z

그리고 sed:

$ echo "p.G345L and p.X31Z" | sed 's/p\.//g'
G345L and X31Z

관련 정보