Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483839
  • 博文数量: 83
  • 博客积分: 2570
  • 博客等级: 少校
  • 技术积分: 901
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-19 12:05
文章分类

全部博文(83)

文章存档

2012年(1)

2011年(1)

2010年(8)

2009年(14)

2008年(45)

2007年(14)

我的朋友

分类: LINUX

2008-10-08 16:06:06

1、将第5区域中的时间显示由20091010修改为2009/10/10显示输出.
 
awk -F\| '{if( length($5)<8) { print $1"|"$2"|"$3"|"$4"|"substr($5,1,4)"/"substr($5,5,1)"/"substr($5,6,2)"|"$6"|""1" }else { print $1"|"$2"|"$3"|"$4"|"substr($5,1,4)"/"substr($5,5,2)"/"substr($5,7,2)"|"$6"|""1" }}' f1 >f2
 
2、修改区域值:将第一个文件的第3、4区域相加和作为第二个文件的第3区域,然后第二个文件的第3、4区域相加作为第3文件的第3区域,以此类推。(关键:NR(总记录数)>FNR(当前记录数)时候,则表示为第二个文件的操作)
 
#!/bin/bash
S=$#
if [ $S -lt 1 ]||[ $S -eq 1 ]; then
echo -e "FILE MUST GREATE TWO;\nusage:`basename $0` file1 file2 ......"
exit 1;
fi
awk 'BEGIN{OFS=FS="|"} NR==FNR{a[$1]=$3+$4} NR>FNR{$3=a[$1];print}' $1 $2 >k
shift
until  [ $# -eq 1 ]
do
awk 'BEGIN{OFS=FS="|"} NR==FNR{a[$1]=$3+$4} NR>FNR{$3=a[$1];print}' k $2 >TE
cp TE k
shift
done
rm TE
阅读(692) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~