BASH |获取括号之间的文本

BASH | get text between brackets

你能帮我解决从输入中获取数字的问题吗?

我输入了这样的内容:

Good [AA0060]    [LIB1:    61]        No   02/11/15 08:38:46

我想在 LIB1 之后获取号码:

61

问题是我也可以这样输入:

Good [AA0060]  AA0060  [LIB1:    61]        No   02/11/15 08:38:46

更新:LIB1 应该是可变的。我想让它更有活力。

你可以试试这个awk命令

awk  -FLIB1: '{print --}' FileName

awk  -FLIB1: '{print +0}' FileName

示例:

echo "Good [AA0060]  AA0060  [LIB1:    61]        No   02/11/15 08:38:46" | awk  -FLIB1: '{print --}'

输出:

61

试试这个 sed 命令。

 sed 's/.*\[LIB1: \{0,\}\(.*\)\].*//'  file_name 

使用变量,

考虑一下,

 match="LIB1"

 sed 's/.*\['$match': \{0,\}\(.*\)\].*//' file_name

使用此 perl 命令:

perl -lne 'print  if(/LIB1:\s+(\d+)\]/)' file