一部のテキスト ファイルには、多くの[with text inside]
. 括弧内にあるものだけを印刷したい。ブラケットの数はファイルが不明であり、解析するファイルごとに異なります。
で解析しようとしましsed
たが、できませんでした。
または、次を試すこともできます。
awk 'NR>1{print $1}' RS=\[ FS=\] file
例えば
$ printf 'First part of foo [bar] not present, ["hello" can be\non a different\nline from "world" ] inside brackets\n' |
awk 'NR>1{print $1}' RS=\[ FS=\]
bar
"hello" can be
on a different
line from "world"
$
perl -nE'say for /\[( [^\[\]]* )\]/xg;'
または、コンテンツが複数の行にまたがる場合。
perl -0777nE'say for /\[( [^\[\]]* )\]/xg;'
ファイル名を引数として渡すか、STDIN を使用できます。