【发布时间】:2014-07-31 13:21:39
【问题描述】:
以下命令在从 shell 执行时可以正常工作。我想在 python 脚本中做同样的事情(或者更确切地说,获得相同的输出)。但无论我做什么,我总是会遇到一些引号错误。我试过用 os.system...、subprocess.Popen...、shlex.split... 来实现这个,但没有任何运气。
comm -13 <(grep -e 77772 -e 77778 -e 777710 myfile1.dat |
awk 'BEGIN {FS=";"} ; {print $8 "," $1}' |
sort -t '.' -k 1,1 -k 2,2) \
<(grep -e 77772 -e 77778 -e 777710 myfile2.dat |
awk 'BEGIN {FS=";"} ; {print $8 "," $1}' |
sort -t '.' -k 1,1 -k 2,2) |
tee output.dat
(我基本上是从包含 77772 或 77778 或 777710 的两个文件中选择行,从这些行中选择两列(column1 和 column8),对它们进行排序以查找 myfile2.dat 独有的行 - 并将这些行写入输出.dat)。
有没有更简单的方法来做到这一点?
【问题讨论】:
-
“但无论我做什么,我总是会遇到一些引号错误”。请向我们展示一些产生引号错误的代码。
-
文件有多大?将相关数据从
myfile1.dat读取到内存中,然后遍历myfile2.dat并将独特的行写入标准输出和output.dat,这可能更简单。不要分叉出你可以在 Python 中轻松完成的事情。