如何从日志输出中打印列的值

时间:2018-05-02 21:09:42

标签: python bash shell scripting sh

我想在列下获取所有值。以下是我的日志输出示例

  

姓名,公司,城市,国家

     

Nik ,Apple, NY ,美国

     

DAS ,Facebook, DAll ,美国

     

John ,Twitter,悉尼,AUS

我想打印所有城市名称

城市

NY

DALL

悉尼

名称,公司,城市,国家/地区行是标题。我需要City的输出

2 个答案:

答案 0 :(得分:0)

假设每个记录中的值以逗号和空格分隔,您可以使用string的{​​{1}}方法拆分该行。只需指定您希望如何拆分字符串,然后即可参加比赛。

split

如果日志文件的格式更复杂,您可以考虑使用一些简单的模式匹配,正则表达式或正确的日志解析库。

如果您需要打印出每个独特的城市名称而不是每个遇到的城市名称,您可以将它们存储在一个集合中:

records = []
with open('log.txt', 'r') as log_file:
    for line in log_file:
        name, company, city, country = line.split(', ')
        print(city)
        records.append((name, company, city, country))

答案 1 :(得分:0)

您可以使用cut命令或awk命令

来实现此目的

with cut

cat 1.txt | cut -d, -f3  
City
NY
DAll
Sydney

其中-d告诉分隔符,-f告诉您要提取哪个字段。

使用awk

cat 1.txt | awk -F, '{print $3}'
City
NY
DAll
Sydney

-F将分隔符指定为逗号。