私ファイル.txt1行が含まれます:
[MOVING] From [/source/foo.txt] to [/dest/bar.txt]
基本的に、角かっこのペア内から3番目のグループを抽出する正規表現を探したいと思います。[]
予想する /dest/bar.txt
これまで、私は次のことを思い出しました。
$> cat file.txt | grep ".*From.*to.*" | grep -oP '(?<=to ).*$' | cut -d "[" -f 2 | cut -d "]" -f 1
動作しますが、エレガントなソリューションとはまったく異なります。誰でもこれを達成する方法を知っていますか?
ベストアンサー1
grep -o '\[[^]]*\]$' file.txt | sed 's/\[//; s/\]//'
これにより、grepが行末に固定され、角かっこと必要なテキストが抽出されます。このsed
コマンドは括弧を削除します。