你能幫我解決我的問題從輸入數字嗎?BASH |得到括號之間的文字
我輸入這樣的事情:
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應該是可變的。我想讓它更具活力。
你能幫我解決我的問題從輸入數字嗎?BASH |得到括號之間的文字
我輸入這樣的事情:
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應該是可變的。我想讓它更具活力。
試試這個sed
命令。
sed 's/.*\[LIB1: \{0,\}\(.*\)\].*/\1/' file_name
使用變量,
考慮,
match="LIB1"
sed 's/.*\['$match': \{0,\}\(.*\)\].*/\1/' file_name
你可以試試這個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
身高:'打印$ 2 + 0'而是+1的方法 – anubhava 2015-01-21 10:00:28
使用本perl
命令:
perl -lne 'print $1 if(/LIB1:\s+(\d+)\]/)' file
perl的輸出也包含數字前的空字符。 – FriZY 2015-01-21 11:21:17
如何到達那裏變量而不是LIB1?它應該更具活力。 – FriZY 2015-01-21 11:22:54
@FriZY看到我編輯的答案 – 2015-01-21 11:29:58
的作品!謝謝! – FriZY 2015-01-21 11:41:46