目标:将数据文件 *.txt 头部的
16/Mar/2006 12:25:07
400
Freq Trace A Trace B
40 7797.551 0 14.65823 0
......
将其中的Trace A和Trace B改写成为第二行的数字。
for i in *.txt
do
j=$(awk 'NR==2 {print $1}' ${i}|col -b)
#读取第二行的第一个域即那个数字到变量j中。col -b的作用是过滤掉其中的回车符号
echo ${j}
#显示只为好玩和有个进度概念,没什么实际用处
sed -e 3s/Trace\ A/${j}/g ${i} > h${i}
sed -e 3s/Trace\ B/${j}/g h${i} > ch${i}
#在第三行搜索字串并作替换,因为要替换两个部分所以需要有一个中间文件,不过如果用条件表达式应该可以一次搞定,再说吧,能实现功能就成了。
rm h${i}
#删除中间临时文件
done
阅读(2754) | 评论(0) | 转发(0) |