마지막 콜론 앞의 문자를 추출합니다.

마지막 콜론 앞의 문자를 추출합니다.

마지막 콜론 앞의 문자를 추출하고 마지막 줄의 :대괄호를 제거해야 합니다. []내 파일 구조는

256.XXX.XXX.X:20234
214.XXX.XXX.X:7249
[2200:XXXX:XXXX:XXX:XXXX:XXXX:XXXX:XXXX]:46288

다음 형식의 출력 파일이 필요합니다.

256.XXX.XXX.X
214.XXX.XXX.X
2200:XXXX:XXXX:XXX:XXXX:XXXX:XXXX:XXXX

답변1

마지막 콜론 뒤의 모든 내용을 제거한 다음, 아무 곳에나 남아 있는 괄호를 제거합니다.

sed 's/:[^:]*$//; s/[][]//g'

또는

sed 's/\(.*\):.*/\1/; s/[][]//g'

.*(여기서 첫 번째 것은 탐욕스럽고 :가능한 한 많은 s를 삼킬 것이라는 사실을 사용합니다).

답변2

그러면 제공된 예에서와 같이 마지막 "콜론" 앞의 모든 문자가 추출되고 대괄호 [ ]가 제거됩니다.

rev <yourfile.txt | cut -d: -f2- | rev | tr -d '[]'

yourfile.txt를 파일 이름으로 바꾸거나 <yourfile.txt표준 출력을 읽으려면 단어를 제거하십시오.

답변3

셸만 해당:

while IFS= read -r line; do
    tmp=${line%:*}               # remove last colon and following chars
    tmp=${tmp#"["}               # remove leading open bracket
    result=${tmp%"]"}            # remove trailing close bracket
    printf "%s\n" "$result"
done < file

답변4

주문하다:

awk -F ":" 'OFS=":"{$NF="";print $0}' filename | sed "s/:$//g"| sed "s/^\[//g"|sed "s/\]//g"

산출

256.XXX.XXX.X
214.XXX.XXX.X
2200:XXXX:XXXX:XXX:XXXX:XXXX:XXXX:XXXX

관련 정보