1
파이썬 스크립트에서 awk 스크립트를 호출하려고합니다. 내가 subprocess.Popen()를 사용파이썬 subprocess.Popen에서 문자열 이스케이프
awk -F"\t" 'NR<5{ print "SET", "\""$1"\"", "\""$2"|"$3"|"$4"\"" }' folder/file.tsv
이것은 스크립트입니다
import os
import subprocess
goal_dir = os.path.join(os.getcwd(), "folder", "file.tsv")
args = ["awk", '-F"\t"', 'NR<5{ print "SET", "\""$1"\"", "\""$2"|"$3"|"$4"\"" }', "{0}".format(goal_dir)]
process = subprocess.Popen(args, stdout=subprocess.PIPE)
output = process.communicate()[0]
그러나 제대로 리터럴을 탈출하지 않는 것 같습니다.
시도'-F \\ t''. – melpomene
'NR <5' 대신'NF <5'를 원하셨습니까? –
@HaiVu 아니오, NR은 레코드 번호입니다. – Panayotis