subprocess.run( ("pv {export_path}/*/*.edges.csv.zst | " "tee graph.edges.csv.zst |" "zstdcat |" "tee >( wc -l > graph.edges.count.txt ) |" "tr ' ' '\\n' | " "cat - <( zstdcat {export_path}/*/*.nodes.csv.zst | " " tee >( wc -l > graph.nodes.count.txt ) ) | " "sort -u -S{sort_buffer_size} -T{buffer_path} | " "zstdmt > {export_path}/graph.nodes.csv.zst") .format( export_path=shlex.quote(export_path), buffer_path=shlex.quote(buffer_path), sort_buffer_size=shlex.quote(sort_buffer_size), ), shell=True, env=env, )