如何使用sed或awk提取子字符串

时间:2018-10-17 21:38:17

标签: regex bash shell awk sed

我有一个包含以下内容的文件:

[class:ABC_DEF_GHI]
[class:ABC_DEF_GHI:app:ABC_DEF_GHI]

我的目标是提取ABC_DEF_GHI

这是到目前为止我要写的脚本。

eval sed -n 's/.*app://p' file.txt >> $file

2 个答案:

答案 0 :(得分:0)

您可以通过在awk中使用多个定界符来获得此值:

awk  -F':|]' '{print $2}' $file

答案 1 :(得分:0)

sed

$ sed -E 's/.*:(.+)]/\1/' file
ABC_DEF_GHI
ABC_DEF_GHI

提取冒号和右方括号之间的内容,由于贪婪匹配,它将是最后一个冒号。