简体   繁体   中英

grep piping python equivalent

I use this bash command for catching a string in a text file

cat a.txt | grep 'a' | grep 'b' | grep 'c' | cut -d" " -f1

How can I implement this solution in python? I don't want to call os commands because it should be a cross platform script.

You may try this,

with open(file) as f:      # open the file
    for line in f:         # iterate over the lines
        if all(i in line for i in ('a', 'b', 'c')): # check if the line contain all (a,b,c)
            print line.split(" ")[0]   # if yes then do splitting on space and print the first value

You can always use the os library to do a system call:

 import os

 bashcmd = " cat a.txt | grep 'a' | grep 'b' | grep 'c' | cut -d' ' -f1"
 print os.system( bashcmd )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM