我们似乎看到越来越多关于在Excel电子表格上执行awk的问题,所以这里是关于如何做这件事情的Q/A。如何在cygwin中使用awk打印Excel电子表格中的字段?
我有一个Excel电子表格"$D/staff.xlsx"
(其中"$D"
是通向我的桌面)这样的信息:
Name Position
Sue Manager
Bill Secretary
Pat Engineer
,我想打印位置字段为给定的名称,例如输出Secretary
给出了输入Bill
。
我目前可以保存为CSV从Excel获得:
$ cat "$D/staff.csv"
Name,Position
Sue,Manager
Bill,Secretary
Pat,Engineer
,然后运行:
$ awk -F, -v name="Bill" '$1==name{print $2}' "$D/staff.csv"
Secretary
但是这是一个更大的任务的只是一小部分,所以我必须要能够自动从shell脚本执行此操作,而无需手动打开Excel以导出CSV文件。我如何从运行cygwin的Windows PC执行此操作?
还有更好的工具来处理比简单的文本解析器更强大的转换。请参阅http://unix.stackexchange.com/questions/23726/convert-a-xlsx-ms-excel-file-to-csv-on-command-line-with-semicolon-separated以及与文件类型相关的任何其他链接从命令行转换。 –
另外,XLSX仅仅是一个zip文件,里面有xml文件。请参阅http://stackoverflow.com/questions/11082278/how-to-properly-assemble-a-valid-xlsx-file-from-its-internal-sub-components –