日期:2014-05-17  浏览次数:20737 次

请教一个shell脚本
test.csv文件内容:

#开头
#中心1

#发生原因
序号,内容
1,结果正确
2,结果错误

#分析
类别,名称,原因
1,编号,禁止
2,系统,允许

#事件
序号,内容

#结束


脚本,我想得到输出结果是temp1.csv文件里的内容
序号,内容
1,结果正确
2,结果错误


我想得到输出结果是temp2.csv文件里的内容
类别,名称,原因
1,编号,禁止
2,系统,允许


我想得到输出结果是temp3.csv文件里的内容
序号,内容




请教一个脚本。。。本人只会简单的输出某个$1,$2,复杂的还正在学习,请教各位了,谢谢。。。

------解决方案--------------------
先写个awk脚本,例如 test.awk

XML code
BEGIN {FS=",";OFS=","}

/^#发生原因$/ {v_filename="temp1.csv"}
/^#分析$/ {v_filename="temp2.csv"}
/^#事件$/ {v_filename="temp3.csv"}

NF>1 {$1=$1;print $0  >> v_filename}

------解决方案--------------------
是不是你的test.csv格式和你给的不完全一致阿

不管怎么说,把test.awk第一行改成

BEGIN {FS=",";OFS=",";v_filename="temp.csv"}

再尝试下呢?
还有不知道是不是中文的原因,我这里是英文系统。
------解决方案--------------------
那好像不行,
需要2个文件,一个test.awk, 
一个脚本文件,例如test.sh,里面是
nawk -f test.awk test.csv

把这2个文件和test.csv放在一起,执行test.sh就行。