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
你能帮我解决从输入中获取数字的问题吗?
我输入了这样的内容:
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