想用linux里的awk处理一个文本,输入行号,打印出来。因为数据是逗号分隔的csv文件,我第一时间就想起了awk。但是在写python时,出错了。
以下是用shell写的程序可以运行:
#!/bin/bash
echo -n "please enter the line:"
read lie
awk -F ',' -v var="$lie" '{print $var}' test_csv.csv >lines.txt
但是在python里面就报错了:
#!/usr/bin/python
#filename: hash.py
import os
os.system('echo -n "please enter the line:"')
os.system('read lie')
os.system('awk -F ',' -v var="$lie" '{print $var}' test_csv.csv >lines.txt')
错误提示:
test_csv.csv文件里面有50列10000行的数据
os.system("<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">awk -F','-vvar="$lie" '{print$var}' test_csv.csv>lines.txt")回复<aclass='referer'target='_blank'>@Karblue:感谢你的回复,按照你的方法已经取出来了回复<aclass='referer'target='_blank'>@songoex:我晕。你的lie是用shell读出来的。当然不行了。应该是lie=raw_input()os.system("awk-F','-vvar=""+lie+""'{print$var}'test_csv.csv>lines.txt")命令提示没有报错,但是却打印了test_csv.csv里面的全部数据试试这个:os.system("awk -F','-vvar="$lie" '{print$var}' test_csv.csv>lines.txt")命令没有报错,但是却打印了test_csv.csv里面的全部数据
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。