BASH |在括号之间得到文本

时间:2015-01-21 09:48:57

标签: string bash output

你可以帮我解决问题,从输入中获取数字吗?

我输入的内容如下:

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应该是可变的。我希望它更有活力。

3 个答案:

答案 0 :(得分:1)

您可以尝试此awk命令

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

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

示例:

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

输出

61

答案 1 :(得分:0)

试试这个sed命令。

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

使用变量

考虑一下,

 match="LIB1"

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

答案 2 :(得分:0)

使用此perl命令:

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