对如下格式的文件按照数字进行排序,并计算下一行-上一行的差值:
pkt_pts_time=0.050000
pkt_pts_time=0.066667
pkt_pts_time=0.083333
pkt_pts_time=0.100000
pkt_pts_time=0.116667
pkt_pts_time=0.150000
pkt_pts_time=0.166667
命令:
cat hevc_pts.txt|awk -F "=" '{print $2}'|sort |awk "NR>1 {print $0-n}{n=$0}"
坑:
windows 下awk 要用"" 而不能用'', 否则 if(a > b) 这样的语句里> 会出错
windows 下,awk 如果用"", printf 语句里如果有"", 需要用""""
计算平均值,最大值,大于2*1024*1024的个数有多少:
cat UD_Europe_by_Dominic_[4k.znds.com].mp4_au_size.txt |tr -d [:alpha:]|tr -d '_'|tr -d '=' |awk " NR==1{max = $1;next}{sum+=$1} {if($1 >2*1024*1024 ) {count++}} {if ($1 > max) {max = $1}} END{print sum/NR,max,count}"
ffprobe -show_frames -select_streams v case_14208stream.webm|grep pkt_size|tr -d [:alpha:]|tr -d '_'|tr -d '=' |awk " NR==1{max = $1;count = 0;sum = 0;next}{sum+=$1} {if($1 >2*1024*1024 ) {count++}} {if ($1 > max) {max = $1}} END{print sum/NR,max,count}"
cat result.txt|xargs -i echo {}|grep "^[0-9]"|awk "{if ($2 -2*1024*1024 > 0) {count++; print $1,$2, $3}} END{print count}"
cat result.txt|xargs -i echo {}|awk "{if($1~/^[0-9]/) {print $1}}" //awk 正则判断某一项是否是数字开头?
cat result_modify.txt |xargs -i echo {}|awk -F "," "{if($3>1*1024*1024) {print $0} }" >>Au_than_1m.txt
cat result.txt |xargs -i echo {}|awk "{ if($1~/^[0-9]/){printf ""%s,%s,%s,%s,%s,%s,%s,%s,%s\n"",$1,$2,$3,$4,$5,$6,$7,$8,$9} else {printf ""%s"", $0} }" >> Au_than_2m_result.csv
cat result.txt|xargs -i echo {}|awk "{
if($1~/^[0-9]/){
if($2 >2*1024*1024 && $3 == 0)
{printf ""%s,%s,%d\n"", $1,$2, $3 +1}
else{printf ""%s,%s,%s\n"",$1,$2,$3 } }
else { printf ""%s,"",$0 }
} " >>result_modify.txt
awk 的printf 可以控制是否换行,但是print 默认自动换行。
grep -o "DMX_.*(" -file |sort|uniq
dd if=output_8_hevc.yuv bs=1 count=8294400 of=output_8_hevc_one_frame.yuv
http://www.cnblogs.com/superdo/p/4455407.html // 常用shell 命令, 比较好