我正在尝试使用Python子进程运行这个Bash命令
find /Users/johndoe/sandbox -iname "*.py" | awk -F'/' '{ print $NF}'
输出:-
helld.xl.py
parse_maillog.py
replace_pattern.py
split_text_match.py
ssh_bad_login.py
这是我用Python2.7的方式所做的,但输出结果中awk命令过滤器无法工作。
>>> p1=subprocess.Popen(["find","/Users/johndoe/sandbox","-iname","*.py"],stdout=subprocess.PIPE)
>>> p2=subprocess.Popen(['awk','-F"/"','" {print $NF} "'],stdin=p1.stdout,stdout=subprocess.PIPE)
>>>p2.communicate()
('/Users/johndoe/sandbox/argparse.py\n/Users/johndoe/sandbox/custom_logic_substitute.py\n/Users/johndoe/sandbox/finditer_html_parse.py\n/Users/johndoe/sandbox/finditer_simple.py\n/Users/johndoe/sandbox/group_regex.py\n/Users/johndoe/sandbox/helo.py\n/Users/johndoe/sandbox/newdir/helld.xl.py\n/Users/johndoe/sandbox/parse_maillog.py\n/Users/johndoe/sandbox/replace_pattern.py\n/Users/johndoe/sandbox/split_text_match.py\n/Users/johndoe/sandbox/ssh_bad_login.py\n', None)
我也可以只使用p1来获取输出,就像下面这样,但是我无法让awk在这里工作。
list1=[]
result=p1.communicate()[0].split("\n")
for item in res:
a=item.rstrip('/').split('/')
list1.append(a[-1])
print list1
find
е‘Ң令иҰЊдёзљ„еә•еЏ·пәЊж‰Ђд»ӨдёҚжё…жӨљдёғд»Ђд№€дәљзЉҮиү™дёҒй”™иҮҮгЂ‚ - tripleee