「[...]」を含むパターンの後の最初の単語を抽出します。

「[...]」を含むパターンの後の最初の単語を抽出します。

grepパターンを一致させた後に最初の単語を抽出しようとすると問題が発生します。

例を示します。

cat test.txt
[profile dev]
xxx
xxx
[profile prod]
xxx
xxx

それでは、「profile」の後にある単語を抽出して最終的に変数に割り当てたいと思います。

grep試してみましたが、awk単語だけを抽出できないようです。

grep -oP '(?<=profile\s/)\w+' /test.txtまた、何も返しませんawk

awk '/^profile / {print $1}' /text.txt 

多分かっこのためかもしれないし、それともよく分からない。提案してもらえますか?

ベストアンサー1

「profile」という単語がロギングを開始しないため、awkモードは失敗します[profileが...

awk '/^\[profile/ {gsub(/]/,""); print $2}' test.txt
dev
prod

別の方法は配列をロードすることですsplit。以下を使用してください。

awk -F'[][]' '/profile/ {p=split($2,profiles," "); print profiles[2]}' test.txt
dev
prod

おすすめ記事