我有一个文本文件,其中每一行的格式与此类似:
%#&#%# [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