テキスト操作:角かっこ内のすべての項目を抽出する

テキスト操作:角かっこ内のすべての項目を抽出する

各行の形式には、次のテキストファイルがあります。

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

つまり、括弧内の単語を抽出しようとします。 Ola、Dinero、Perroなどをすべて1行ずつ新しいテキストファイルに保存します。基本的には省略/削除/削除したいと思います。みんな単語、文字、特殊文字、角かっこ自体など、角かっこ以外のすべての項目です。

答え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

関連情報