test.csv文件内容:#开头
#中心1#发生原因
序号,内容
1,结果正确
2,结果错误#分析
类别,名称,原因
1,编号,禁止
2,系统,允许#事件
序号,内容#结束
脚本,我想得到输出结果是temp1.csv文件里的内容
序号,内容
1,结果正确
2,结果错误
我想得到输出结果是temp2.csv文件里的内容
类别,名称,原因
1,编号,禁止
2,系统,允许
我想得到输出结果是temp3.csv文件里的内容
序号,内容
请教一个脚本本人只会简单的输出某个$1,$2,复杂的还正在学习,请教各位了,谢谢

解决方案 »

  1.   

    先写个awk脚本,例如 test.awkBEGIN {FS=",";OFS=","}/^#发生原因$/ {v_filename="temp1.csv"}
    /^#分析$/ {v_filename="temp2.csv"}
    /^#事件$/ {v_filename="temp3.csv"}NF>1 {$1=$1;print $0  >> v_filename}然后调用
    nawk -f test.awk test.csv
      

  2.   

    我用awk -f test.awk test.csv执行我执行了,但是报错,报错信息如下:
    awk:test.awk:6 (FILENAME=test.csv FNR=4) fatal:expression for '>' redirection has null string value请教下这是神马原因,
      

  3.   

    是不是你的test.csv格式和你给的不完全一致阿不管怎么说,把test.awk第一行改成BEGIN {FS=",";OFS=",";v_filename="temp.csv"}再尝试下呢?
    还有不知道是不是中文的原因,我这里是英文系统。
      

  4.   


    我已经搞定了,现在可以输出我想要的结果了,是我的csv文件出了问题
    现在还有一个问题
    我想把awk脚本,例如 test.awk和调用的这句nawk -f test.awk test.csv
    写在一个脚本里,然后执行这个脚本,就输出我想要的东西,怎写在一块??请教下??
      

  5.   

    那好像不行,
    需要2个文件,一个test.awk, 
    一个脚本文件,例如test.sh,里面是
    nawk -f test.awk test.csv把这2个文件和test.csv放在一起,执行test.sh就行。