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
阅读(703) | 评论(0) | 转发(0) |