版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/epeaktop/article/details/81064431
- 计算浮点数,和c++一样可以控制两位小数
echo ""|awk -F' ' '{printf("%.2f\n", 100*(21+100)/333)}'
- map使用范例
declare -A map=()
awk -F'|' '{printf("%s,%s,%s\n",$3,$7,$12)}' levelup.txt > 5.txt
list=`cat 5.txt`
for i in $list
do
uid=`expr match $i '\(.*\),.*,.*'`
roleId=`expr match $i '.*,\(.*\),.*'`
level=`expr match $i '.*,.*,\(.*\)'`
# uid=`echo $i|awk -F, '{print $2}'`
# uid=${i%,*}
# uid=${uid#*,} # 取得角色id
echo $uid" , "$roleId" , "$level
a=map[${uid}]
if [ $a -lt $level ]; then
map[${uid}]=${level};
fi
done
for key in ${!map[@]}
do
echo "${key},"${map[$key]}
done
- 同时在file1和file2中的行
awk '{if(ARGIND==1) {val[$0]}else{if($0 in val) print $0}}' file1 file2
- 只在file1中有的行.
awk '{if(ARGIND==1) {val[$0]}else{if($0 in val) delete val[$0]}}END{for(i in val) print i}' file1 file2
- 其实也可以这样:
awk 'ARGIND==1{a[$0]}ARGIND>1&&!($0 in a){print $0}' file1 file2
- 只在file2中有的行.
awk '{if(ARGIND==1) {val[$0]}else{if($0 in val) delete val[$0]}}END{for(i in val) print i}' file2 file1
awk '{if(NR==FNR){val[$0]}else{if($1 in val) print $0}}' 70029 zhima
awk '{if(NR==FNR){val[$0]=$0}else{if($5 in val) {print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t1"}else{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t0"}}}' from data
- 随机选取文件的行数
shuf -n5 文件名
function usage()
{
cat << EOF
usage: $0 [options]
OPTIONS:
-s Build externals from source
-h this help
-d debug model
EOF
}
注意xargs的用法
awk -F' ' '{print $2}' 3.txt | awk -F'.' '{print $1}' |xargs -I {} date -d @{} "+%Y-%m-%d %H:%M:%S"