각 줄의 형식이 다음과 같은 텍스트 파일이 있습니다.
%#&#%# [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