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