텍스트 조작: 대괄호 안의 모든 항목 추출

텍스트 조작: 대괄호 안의 모든 항목 추출

각 줄의 형식이 다음과 같은 텍스트 파일이 있습니다.

%#&#%#    [Dinero]    / Money / 
!#@%$@    [Dia]     / Day /
$%&$^#@ [Perro]   / Dog / 

즉, 괄호 안의 단어를 추출하려고 합니다. Ola, Dinero, Perro 등을 모두 한 줄씩 새 텍스트 파일에 저장합니다. 기본적으로는 생략/삭제/삭제하고 싶습니다.모두단어, 문자, 특수 문자 및 대괄호 자체를 포함하여 대괄호 외부의 모든 항목입니다.

답변1

의 도움으로 awk...

$ awk -F'[][]' '{print $2}' < input
Dinero
Dia
Perro

사용 grep,

grep -oP '\[\K[^\]]+' input

\K사용하는 것을 의미한다주위를 둘러보세요고급 정규식 기능. 보다 정확하게는,긍정적인 역방향 주장

해당 옵션이 누락된 경우 -P다음 방법으로 수행할 수 있습니다 perl.

perl -lne '/\[\K[^\]]+/ and print $&' input

옵션을 사용하여 -i파일을 제자리에서 편집합니다.

또는 cut@juliepelletier가 제안한 대로 사용할 수 있습니다.

cut -d"[" -f2 < input | cut -d"]" -f1

답변2

sed 's/^.*\[//;s/\].*$//' /path/to/input > /path/to/output

관련 정보