当我尝试提取grep
匹配我的模式后的第一个单词时,我遇到问题。
让我给你看一个例子:
cat test.txt
[profile dev]
xxx
xxx
[profile prod]
xxx
xxx
现在我想提取“profile”后面的单词并最终将其分配给一个变量
我尝试使用grep
andawk
但似乎我无法仅提取这个词
grep -oP '(?<=profile\s/)\w+' /test.txt
也不会返回任何内容awk
:
awk '/^profile / {print $1}' /text.txt
也许是因为括号或者我不知道,你能帮我提个建议吗?
答案1
你的 awk 模式失败了,因为单词“profile”没有开始记录,[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