我有一个文件,其中的字段用逗号分隔。
一些示例输入:
col1,"1,2",col3
col1,"1,2,3",col3
col1,"1 2,3",col3
col1,"1 "2,3"",col3
现在,我必须获取第二列,以便我得到:
"1,2"
"1,2,3"
"1 2,3"
"1 "2,3""
cut -d, -f2 file
没有做我想做的事。
那么,如何从上面的输入中检索第 2 列呢?
答案1
如果你有openoffice,你可以用它来打开文件,并在打开时将“分隔符值”设置为逗号。然后您可以复制第二列。
答案2
Python 有一个csv
模块可以自动处理这个问题。例如,这里有一个简短的脚本,可以执行您想要的操作,读取stdin
:
import csv
import sys
for columns in csv.reader(sys.stdin, delimiter=","):
print columns[1]
您可以将其保存在文件中,或者,从命令行调用它应该不会太难:
... | python -c "import csv, sys; print [c[1] for c in csv.reader(sys.stdin, delimiter=',')]"