2017-04-25 34 views
0

下面我有一個日誌txt文件:提取了一些表使用bash

Data           

Adress    Member  Year old   Birthday 

1600 queen street  Male  6    04/15/17 

我想只提取的「歲」的數量和使用它的可變後我的腳本,如:

if [ $oldregistered != $newold ] 
then 
     echo "The year old has changed !" 
else 
     echo "Nothing to do, stay young !" 
fi 

如何從日誌文件中提取「年份」的數量?

+0

是您的日誌文件的製表符分隔? – Tom

+0

表中只有一串數據? – RomanPerekhrest

+0

爲什麼在Bash中爲數據庫設計這個功能呢? – dood

回答

0

您需要'字段分隔符' - (看起來像'標籤'正在使用中)。有許多方法本 - AWK例子如下:

echo "1600 queen street | Male | 6 | 04/15/17" | awk -F '|' '{print $3}' 

上面,我們設置分隔符爲管道符號,然後讓AWK向我們展示了第三個「田」。

如果正在使用的標籤,則是這樣的:

newold=$(awk -F '\t' '{print $3}' /path/some_file.log.txt) 

以上應爲你工作,只要你的文件只包含數據的一行,否則awk將遍歷每行和打印第三場。如果您的源文件包含多條數據線,那麼您需要'預先選擇'感興趣的線(即通過egrep),並只發送一行到awk命令。

:)
戴爾

+0

解決了,再次感謝:) – user3487389