建议收藏!Linux运维三剑客grepawksed实用笔记
grep{ -c # 显示匹配到得行的数目,不显示内容 -h # 不显示文件名 -i # 忽略大小写 -l # 只列出匹配行所在文件的文件名 -n # 在每一行中加上相对行号 -s # 无声操作只显示报错,检查退出状态 -v # 反向查找 -e # 使用正则表达式 -w # 精确匹配 -wc # 精确匹配次数 -o # 查询所有匹配字段 -P # 使用perl正则表达式 -A3 # 打印匹配行和下三行 -B3 # 打印匹配行和上三行 -C3 # 打印匹配行和上下三行 grep -v "a" txt # 过滤关键字符行 grep -w "a>" txt # 精确匹配字符串 grep -i "a" txt # 大小写敏感 grep "a[bB]" txt # 同时匹配大小写 grep "[0-9]{3}" txt # 查找0-9重复三次的所在行 grep -E "word1|word2|word3" file # 任意条件匹配 grep word1 file | grep word2 |grep word3 # 同时匹配三个 echo quan@163.com |grep -Po "(?<=@.).*(?=.$)" # 零宽断言截取字符串 # 63.co echo "I"m singing while you"re dancing" |grep -Po "bw+(?=ingb)" # 零宽断言匹配 echo "Rx Optical Power: -5.01dBm, Tx Optical Power: -2.41dBm" |grep -Po "(?<=:).*?(?=d)" # 取出d前面数字 # ?为最小匹配 echo "Rx Optical Power: -5.01dBm, Tx Optical Power: -2.41dBm" | grep -Po "[-0-9.]+" # 取出d前面数字 # ?为最小匹配 echo "["mem",ok],["hardware",false],["filesystem",false]" |grep -Po "[^"]+(?=",false)" # 取出false前面的字母 echo "["mem",ok],["hardware",false],["filesystem",false]" |grep -Po "w+",false"|grep -Po "^w+" # 取出false前面的字母 grep用于if判断{ if echo abc | grep "a" > /dev/null 2>&1 then echo "abc" else echo "null" fi } } awk{ # 默认是执行打印全部 print $0 # 1为真 打印$0 # 0为假 不打印 -F # 改变FS值(分隔符) ~ # 域匹配 == # 变量匹配 !~ # 匹配不包含 = # 赋值 != # 不等于 += # 叠加 b # 退格 f # 换页 # 换行 r # 回车 # 制表符Tab c # 代表任一其他字符 -F"[ ]+|[%]+" # 多个空格或多个%为分隔符 [a-z]+ # 多个小写字母 [a-Z] # 代表所有大小写字母(aAbB...zZ) [a-z] # 代表所有大小写字母(ab...z) [:alnum:] # 字母数字字符 [:alpha:] # 字母字符 [:cntrl:] # 控制字符 [:digit:] # 数字字符 [:graph:] # 非空白字符(非空格、控制字符等) [:lower:] # 小写字母 [:print:] # 与[:graph:]相似,但是包含空格字符 [:punct:] # 标点字符 [:space:] # 所有的空白字符(换行符、空格、制表符) [:upper:] # 大写字母 [:xdigit:] # 十六进制的数字(0-9a-fA-F) [[:digit:][:lower:]] # 数字和小写字母(占一个字符) 内建变量{ $n # 当前记录的第 n 个字段,字段间由 FS 分隔 $0 # 完整的输入记录 ARGC # 命令行参数的数目 ARGIND # 命令行中当前文件的位置 ( 从 0 开始算 ) ARGV # 包含命令行参数的数组 CONVFMT # 数字转换格式 ( 默认值为 %.6g) ENVIRON # 环境变量关联数组 ERRNO # 最后一个系统错误的描述 FIELDWIDTHS # 字段宽度列表 ( 用空格键分隔 ) FILENAME # 当前文件名 FNR # 同 NR ,但相对于当前文件 FS # 字段分隔符 ( 默认是任何空格 ) IGNORECASE # 如果为真(即非 0 值),则进行忽略大小写的匹配 NF # 当前记录中的字段数(列) NR # 当前行数 OFMT # 数字的输出格式 ( 默认值是 %.6g) OFS # 输出字段分隔符 ( 默认值是一个空格 ) ORS # 输出记录分隔符 ( 默认值是一个换行符 ) RLENGTH # 由 match 函数所匹配的字符串的长度 RS # 记录分隔符 ( 默认是一个换行符 ) RSTART # 由 match 函数所匹配的字符串的第一个位置 SUBSEP # 数组下标分隔符 ( 默认值是 /034) BEGIN # 先处理(可不加文件参数) END # 结束时处理 } 内置函数{ gsub(r,s) # 在整个$0中用s替代r 相当于 sed "s///g" gsub(r,s,t) # 在整个t中用s替代r index(s,t) # 返回s中字符串t的第一位置 length(s) # 返回s长度 match(s,r) # 测试s是否包含匹配r的字符串 split(s,a,fs) # 在fs上将s分成序列a sprint(fmt,exp) # 返回经fmt格式化后的exp sub(r,s) # 用$0中最左边最长的子串代替s 相当于 sed "s///" substr(s,p) # 返回字符串s中从p开始的后缀部分 substr(s,p,n) # 返回字符串s中从p开始长度为n的后缀部分 } awk判断{ awk "{print ($1>$2)?"第一排"$1:"第二排"$2}" # 条件判断 括号代表if语句判断 "?"代表then ":"代表else awk "{max=($1>$2)? $1 : $2; print max}" # 条件判断 如果$1大于$2,max值为为$1,否则为$2 awk "{if ( $6 > 50) print $1 " Too high" ; else print "Range is OK"}" file awk "{if ( $6 > 50) { count++;print $3 } else { x+5; print $2 } }" file } awk循环{ awk "{i = 1; while ( i <= NF ) { print NF, $i ; i++ } }" file awk "{ for ( i = 1; i <= NF; i++ ) print NF,$i }" file } awk "/Tom/" file # 打印匹配到得行 awk "/^Tom/{print $1}" # 匹配Tom开头的行 打印第一个字段 awk "$1 !~ /ly$/" # 显示所有第一个字段不是以ly结尾的行 awk "$3 <40" # 如果第三个字段值小于40才打印 awk "$4==90{print $5}" # 取出第四列等于90的第五列 awk "/^(no|so)/" test # 打印所有以模式no或so开头的行 awk "$3 * $4 > 500" # 算术运算(第三个字段和第四个字段乘积大于500则显示) awk "{print NR" "$0}" # 加行号 awk "/tom/,/suz/" # 打印tom到suz之间的行 awk "{a+=$1}END{print a}" # 列求和 awk "sum+=$1{print sum}" # 将$1的值叠加后赋给sum awk "{a+=$1}END{print a/NR}" # 列求平均值 awk "!s[$1 $3]++" file # 根据第一列和第三列过滤重复行 awk -F"[ : ]" "{print $1,$2}" # 以空格、:、制表符Tab为分隔符 awk "{print """$a""","""$b"""}" # 引用外部变量 awk "{if(NR==52){print;exit}}" # 显示第52行 awk "/关键字/{a=NR+2}a==NR {print}" # 取关键字下第几行 awk "gsub(/liu/,"aaaa",$1){print $0}" # 只打印匹配替换后的行 ll | awk -F"[ ]+|[ ][ ]+" "/^$/{print $8}" # 提取时间,空格不固定 awk "{$1="";$2="";$3="";print}" # 去掉前三列 echo aada:aba|awk "/d/||/b/{print}" # 匹配两内容之一 echo aada:abaa|awk -F: "$1~/d/||$2~/b/{print}" # 关键列匹配两内容之一 echo Ma asdas|awk "$1~/^[a-Z][a-Z]$/{print }" # 第一个域匹配正则 echo aada:aaba|awk "/d/&&/b/{print}" # 同时匹配两条件 awk "length($1)=="4"{print $1}" # 字符串位数 awk "{if($2>3){system ("touch "$1)}}" # 执行系统命令 awk "{sub(/Mac/,"Macintosh",$0);print}" # 用Macintosh替换Mac awk "{gsub(/Mac/,"MacIntosh",$1); print}" # 第一个域内用Macintosh替换Mac awk -F "" "{ for(i=1;ia) a=$1 fi}END{print a}" # 列求最大值 设定一个变量开始为0,遇到比该数大的值,就赋值给该变量,直到结束 awk "BEGIN{a=11111}{if ($1= 0 ) {print $0,$i}}" # 求余数 awk "{b=a;a=$1; if(NR>1){print a-b}}" # 当前行减上一行 awk "{a[NR]=$1}END{for (i=1;i<=NR;i++){print a[i]-a[i-1]}}" # 当前行减上一行 awk -F: "{name[x++]=$1};END{for(i=0;i /dev/null 2>&1") == 0 ) {print $1,"Y"} else {print $1,"N"} }" a # 执行系统命令判断返回状态 awk "{for(i=1;i<=NF;i++) a[i,NR]=$i}END{for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++) printf a[i,j] " ";print ""}}" # 将多行转多列 netstat -an|awk -v A=$IP -v B=$PORT "BEGIN{print "Clients Guest_ip"}$4~A":"B{split($5,ip,":");a[ip[1]]++}END{for(i in a)print a[i]" "i|"sort -nr"}" # 统计IP连接个数 cat 1.txt|awk -F" # " "{print "insert into user (user,password,email)values(""""""$1""","""""""$2""","""""""$3""");""}" >>insert_1.txt # 处理sql语句 awk "BEGIN{printf "what is your name?";getline name < "/dev/tty" } $1 ~name {print "FOUND" name " on line ", NR "."} END{print "see you," name "."}" file # 两文件匹配 取本机IP{ /sbin/ifconfig |awk -v RS="Bcast:" "{print $NF}"|awk -F: "/addr/{print $2}" /sbin/ifconfig |awk "/inet/&&$2!~"127.0.0.1"{split($2,a,":");print a[2]}" /sbin/ifconfig |awk -v RS="inet addr:" "$1!="eth0"&&$1!="127.0.0.1"{print $1}"|awk "{printf"%s|",$0}" /sbin/ifconfig |awk "{printf("line %d,%s ",NR,$0)}" # 指定类型(%d数字,%s字符) } 查看磁盘空间{ df -h|awk -F"[ ]+|%" "$5>14{print $5}" df -h|awk "NR!=1{if ( NF == 6 ) {print $5} else if ( NF == 5) {print $4} }" df -h|awk "NR!=1 && /%/{sub(/%/,"");print $(NF-1)}" df -h|sed "1d;/ /!N;s/ //;s/ +/ /;" #将磁盘分区整理成一行 可直接用 df -P } 排列打印{ awk "END{printf "%-10s%-10s %-10s%-10s %-10s%-10s ","server","name","123","12345","234","1234"}" txt awk "BEGIN{printf "|%-10s|%-10s| |%-10s|%-10s| |%-10s|%-10s| ","server","name","123","12345","234","1234"}" awk "BEGIN{ print " *** 开 始 *** "; print "+-----------------+"; printf "|%-5s|%-5s|%-5s| ","id","name","ip"; } $1!=1 && NF==4{printf "|%-5s|%-5s|%-5s| ",$1,$2,$3" "$11} END{ print "+-----------------+"; print " *** 结 束 *** " }" txt } awk经典题{ 分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,也就是计算每个url的总访问大小 说明:本题生产环境应用:这个功能可以用于IDC网站流量带宽很高,然后通过分析服务器日志哪些元素占用流量过大,进而进行优化或裁剪该图片,压缩js等措施。 本题需要输出三个指标: 【被访问次数】 【访问次数*单个被访问文件大小】 【文件名(带URL)】 测试数据 59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299 awk "{array_num[$7]++;array_size[$7]+=$10}END{for(i in array_num) {print array_num[i]" "array_size[i]" "i}}" } awk练习题{ wang 4 cui 3 zhao 4 liu 3 liu 3 chang 5 li 2 1 通过第一个域找出字符长度为4的 2 当第二列值大于3时,创建空白文件,文件名为当前行第一个域$1 (touch $1) 3 将文档中 liu 字符串替换为 hong 4 求第二列的和 5 求第二列的平均值 6 求第二列中的最大值 7 将第一列过滤重复后,列出每一项,每一项的出现次数,每一项的大小总和 1、字符串长度 awk "length($1)=="4"{print $1}" 2、执行系统命令 awk "{if($2>3){system ("touch "$1)}}" 3、gsub(/r/,"s",域) 在指定域(默认$0)中用s替代r (sed "s///g") awk "{gsub(/liu/,"hong",$1);print $0}" a.txt 4、列求和 awk "{a+=$2}END{print a}" 5、列求平均值 awk "{a+=$2}END{print a/NR}" awk "{a+=$2;b++}END{print a,a/b}" 6、列求最大值 awk "BEGIN{a=0}{if($2>a) a=$2 }END{print a}" 7、将第一列过滤重复列出每一项,每一项的出现次数,每一项的大小总和 awk "{a[$1]++;b[$1]+=$2}END{for(i in a){print i,a[i],b[i]}}" } awk处理复杂日志{ 6.19: DHB_014_号百总机服务业务日报:广州 到达数异常! DHB_023_号百漏话提醒日报:珠海 到达数异常! 6.20: DHB_014_号百总机服务业务日报:广州 到达数异常!到 awk -F "[_ :]+" "NF>2{print $4,$1"_"$2,b |"sort";next}{b=$1}" # 当前行NF小于等于2 只针对{print $4,$1"_"$2,b |"sort";next} 有效 即 6.19:行跳过此操作, {b=$1} 仍然执行 # 当前行NF大于2 执行到 next 强制跳过本行,即跳过后面的 {b=$1} 广州 DHB_014 6.19 } } sed{ # 先读取资料、存入模式空间、对其进行编辑、再输出、再用下一行替换模式空间内容 # 调试工具sedsed (参数 -d) http://aurelio.net/sedsed/sedsed-1.0 -n # 输出由编辑指令控制(取消默认的输出,必须与编辑指令一起配合) -i # 直接对文件操作 -e # 多重编辑 -r # 正则可不转移特殊字符 b # 跳过匹配的行 p # 打印 d # 删除 s # 替换 g # 配合s全部替换 i # 行前插入 a # 行后插入 r # 读 y # 转换 q # 退出 & # 代表查找的串内容 * # 任意多个 前驱字符(前导符) ? # 0或1个 最小匹配 没加-r参数需转义 ? $ # 最后一行 .* # 匹配任意多个字符 (a) # 保存a作为标签1(1) 模式空间{ # 模式空间(两行两行处理) 模式匹配的范围,一般而言,模式空间是输入文本中某一行,但是可以通过使用N函数把多于一行读入模式空间 # 暂存空间里默认存储一个空行 n # 读入下一行(覆盖上一行) h # 把模式空间里的行拷贝到暂存空间 H # 把模式空间里的行追加到暂存空间 g # 用暂存空间的内容替换模式空间的行 G # 把暂存空间的内容追加到模式空间的行后 x # 将暂存空间的内容于模式空间里的当前行互换 ! # 对其前面的要匹配的范围取反 D # 删除当前模式空间中直到并包含第一个换行符的所有字符(/.*/匹配模式空间中所有内容,匹配到就执行D,没匹配到就结束D) N # 追加下一个输入行到模式空间后面并在第二者间嵌入一个换行符,改变当前行号码,模式匹配可以延伸跨域这个内嵌换行 p # 打印模式空间中的直到并包含第一个换行的所有字符 } 标签函数{ : lable # 建立命令标记,配合b,t函数使用跳转 b lable # 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 t labe # 判断分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令出,或者到脚本末尾。与b函数不同在于t在执行跳转前会先检查其前一个替换命令是否成功,如成功,则执行跳转。 sed -e "{:p1;/A/s/A/AA/;/B/s/B/BB/;/[AB]{10}/b;b p1;}" # 文件内容第一行A第二行B:建立标签p1;两个替换函数(A替换成AA,B替换成BB)当A或者B达到10个以后调用b,返回 echo "sd f f [a b c cddd eee]" | sed ":n;s#([[^ ]*) *#1#;tn" # 标签函数t使用方法,替换[]里的空格 echo "198723124.03"|sed -r ":a;s/([0-9]+)([0-9]{3})/1,2/;ta" # 每三个字符加一个逗号 } 引用外部变量{ sed -n ""$a",10p" sed -n ""$a",10p" } sed 10q # 显示文件中的前10行 (模拟"head") sed -n "$=" # 计算行数(模拟 "wc -l") sed -n "5,/^no/p" # 打印从第5行到以no开头行之间的所有行 sed -i "/^$f/d" a # 删除匹配行 sed -i "/aaa/,$d" # 删除匹配行到末尾 sed -i "s/=/:/" c # 直接对文本替换 sed -i "/^pearls/s/$/j/" # 找到pearls开头在行尾加j sed "/1/,/3/p" file # 打印1和3之间的行 sed -n "1p" file # 取出指定行 sed "5iaaa" file # 在第5行之前插入行 sed "5aaaa" file # 在第5行之后抽入行 echo a|sed -e "/a/ib" # 在匹配行前插入一行 echo a|sed -e "/a/ab" # 在匹配行后插入一行 echo a|sed "s/a/& b/g" # 在匹配行后插入一行 seq 10| sed -e{1,3}"s/./a/" # 匹配1和3行替换 sed -n "/regexp/!p" # 只显示不匹配正则表达式的行 sed "/regexp/d" # 只显示不匹配正则表达式的行 sed "$!N;s/ //" # 将每两行连接成一行 sed "/baz/s/foo/bar/g" # 只在行中出现字串"baz"的情况下将"foo"替换成"bar" sed "/baz/!s/foo/bar/g" # 将"foo"替换成"bar",并且只在行中未出现字串"baz"的情况下替换 echo a|sed -e "s/a/#&/g" # 在a前面加#号 sed "s/foo/bar/4" # 只替换每一行中的第四个字串 sed "s/(.*)foo/1bar/" # 替换每行最后一个字符串 sed "s/(.*)foo(.*foo)/1bar2/" # 替换倒数第二个字符串 sed "s/[0-9][0-9]$/&5" # 在以[0-9][0-9]结尾的行后加5 sed -n " /^eth|em[01][^:]/{n;p;}" # 匹配多个关键字 sed -n -r " /eth|em[01][^:]/{n;p;}" # 匹配多个关键字 echo -e "1 2"|xargs -i -t sed "s/^/1/" {} # 同时处理多个文件 sed "/west/,/east/s/$/*VACA*/" # 修改west和east之间的所有行,在结尾处加*VACA* sed "s/[^1-9]*([0-9]+).*/1/" # 取出第一组数字,并且忽略掉开头的0 sed -n "/regexp/{g;1!p;};h" # 查找字符串并将匹配行的上一行显示出来,但并不显示匹配行 sed -n " /regexp/{n;p;}" # 查找字符串并将匹配行的下一行显示出来,但并不显示匹配行 sed -n "s/(mar)got/1ianne/p" # 保存(mar)作为标签1 sed -n "s/([0-9]+).*(t)/21/p" # 保存多个标签 sed -i -e "1,3d" -e "s/1/2/" # 多重编辑(先删除1-3行,在将1替换成2) sed -e "s/@.*//g" -e "/^$/d" # 删除掉@后面所有字符,和空行 sed -n -e "{s/^ *[0-9]*//p}" # 打印并删除正则表达式的那部分内容 echo abcd|sed "y/bd/BE/" # 匹配字符替换 sed "/^#/b;y/y/P/" 2 # 非#号开头的行替换字符 sed "/suan/r readfile" # 找到含suan的行,在后面加上读入的文件内容 sed -n "/no/w writefile" # 找到含no的行,写入到指定文件中 sed "/regex/G" # 在匹配式样行之后插入一空行 sed "/regex/{x;p;x;G;}" # 在匹配式样行之前和之后各插入一空行 sed "n;d" # 删除所有偶数行 sed "G;G" # 在每一行后面增加两空行 sed "/^$/d;G" # 在输出的文本中每一行后面将有且只有一空行 sed "n;n;n;n;G;" # 在每5行后增加一空白行 sed -n "5~5p" # 只打印行号为5的倍数 seq 1 30|sed "5~5s/.*/a/" # 倍数行执行替换 sed -n "3,${p;n;n;n;n;n;n;}" # 从第3行开始,每7行显示一次 sed -n "h;n;G;p" # 奇偶调换 seq 1 10|sed "1!G;h;$!d" # 倒叙排列 ls -l|sed -n "/^.rwx.*/p" # 查找属主权限为7的文件 sed = filename | sed "N;s/ / /" # 为文件中的每一行进行编号(简单的左对齐方式) sed "s/^[ ]*//" # 将每一行前导的"空白字符"(空格,制表符)删除,使之左对齐 sed "s/^[ ]*//;s/[ ]*$//" # 将每一行中的前导和拖尾的空白字符删除 sed "/{abc,def}/[111,222]/s/^/00000/" # 匹配需要转行的字符: } / [ echo abcdnabcde |sed "s/n/@/g" |tr "@" " " # 将换行符转换为换行 cat tmp|awk "{print $1}"|sort -n|sed -n "$p" # 取一列最大值 sed -n "{s/^[^/]*//;s/:.*//;p}" /etc/passwd # 取用户家目录(匹配不为/的字符和匹配:到结尾的字符全部删除) sed = filename | sed "N;s/^/ /; s/ *(.{6,}) /1 /" # 对文件中的所有行编号(行号在左,文字右端对齐) /sbin/ifconfig |sed "s/.*inet addr:(.*) Bca.*/1/g" |sed -n "/eth/{n;p}" # 取所有IP 修改keepalive配置剔除后端服务器{ sed -i "/real_server.*10.0.1.158.*8888/,+8 s/^/#/" keepalived.conf sed -i "/real_server.*10.0.1.158.*8888/,+8 s/^#//" keepalived.conf } 模仿rev功能{ echo 123 |sed "/ /!G;s/(.)(.* )/&21/;//D;s/.//;" / /!G; # 没有 换行符,要执行G,因为保留空间中为空,所以在模式空间追加一空行 s/(.)(.* )/&21/; # 标签替换 & 23 1$ (关键在于& ,可以让后面//匹配到空行) //D; # D 命令会引起循环删除模式空间中的第一部分,如果删除后,模式空间中还有剩余行,则返回 D 之前的命令,重新执行,如果 D 后,模式空间中没有任何内容,则将退出。 //D 匹配空行执行D,如果上句s没有匹配到,//也无法匹配到空行, "//D;"命令结束 s/.//; # D结束后,删除开头的 } } xargs{ # 命令替换 -t 先打印命令,然后再执行 -i 用每项替换 {} find / -perm +7000 | xargs ls -l # 将前面的内容,作为后面命令的参数 seq 1 10 |xargs -i date -d "{} days " +%Y-%m-%d # 列出10天日期 }
华为神秘新机通过3C认证,依旧标配4G,还会有人买账吗?从去年开始各大厂商都在努力的普及5G,去年下半年基本全部新机都标配5G了,在今年还有4G手机发布倒也是不太多见了。虽然大家都议论纷纷,但对于华为现在的制裁来说,4G手机正是它保命的
腾讯发布反舞弊通报近70人因触犯腾讯高压线被辞退新京报快讯据腾讯集团反舞弊调查部微信公众号25日消息,腾讯一直以来信奉正直的价值观,要求每位腾讯人坚守底线,以德为先,坦诚公正不唯上。为共同守护腾讯的企业文化,构建健康和安全的工作
比iPhone还牛!联想推出无线充电笔电,速度真牛说到无线充电,熟悉消费电子市场的朋友应该都不陌生,在手机领域,无线充电已经成为大多数旗舰手机的标配。比如我们所熟悉的iPhone,就从iPhone8开始配备无线充电功能,掰掰手指已
为什么我接触很多音响发烧友几乎都不是科班出身的?本人就是科班出身。七十五了,从小爱好无线电,从矿石收音机开始,电子管收音机,落地式收音机,电唱机,半导体收音机,黑白电视机,彩色电视机,盒式磁带录放机,功率放大器,音箱,家里用的都
为什么现在人都喜欢在网上购物?你好,我是丁大叔,很高兴回答你的问题,对于现在的人都喜欢网上购物这个问题,我认为主要有以下几个方面的原因第一,现在这个时代,电子商务已经比较成熟,人们的思想观念已经认可网上购物。第
2022拍照最好的手机,堪比小单反,喜欢拍照的朋友可以考虑第一款小米12Pro小米12Pro后置三摄,5000万广角主摄(SONYIMX707,f1。9大光圈)5000万人像主摄(三星JN1,f1。9光圈)5000万超广角主摄(三星JN1
技能树点满的旗舰游戏耳机雷蛇北海巨妖V3专业版Hello,大家好!我是沈少!经常玩游戏,或者看游戏比赛的朋友们应该都会注意到,无论是职业选手还是专业玩家,清一色的都会选择头戴式耳机玩游戏。原因就在于大耳机可以带来出色的包裹感(
三星S22价格最新售价曝光2台小米12Pro的价格近日,三星GalaxyS22即将发布,发布前夕也已经有不少爆料。知名爆料人士RolandQuandt曝光了该新品的价格。根据爆料显示,GalaxyS22起售价849欧元(8GB12
厨房净水器有必要吗?非常非常非常有必要。而且,友情提示,净水器一定要装橱下的。我们最开始为了给孩子冲奶粉着急选了一款橱上的,不但不好打理还非常占空间。后来干脆换成了碧然德家橱下的mypureproX6
肖战有什么缺点?目前没有找到缺点,反而是在不断感叹,这个男人怎么这么完美,太拿得出手了,特别是在跟其他明星对比之后,这个男人优越到令人发指,如果肖战没有出道当明星真的是所有人的损失,何其幸运能与这
激光位移传感器市场发展前景好么,应用都有哪些领域?据QYResearch研究中心调查发现激光位移传感器在消费电子和汽车领域的应用日益增多,加上其他行业的需求不断增长,这对全球激光位移传感器市场非常有利。目前,在国外工业发达国家,激
如何区分仓库管理和库存管理?在仓储管理过程中,大家都问我一个问题,什么是仓库管理?什么是物控管理?有一些人都认为都是仓库管理。但是,这是不一样的管理的这两者的区别主要面对的都是库存。管理的范围不同,仓库管理的
当今的库存管理库存管理来源是仓储管理重要的一部分物流是供应链的重要组成部分,是为了满足消费者需求,有效的计划管理和控制原材料中间仓储最终产品及相关信息从开始的消费地的流动过程。物流是关于供应链上从供应点到消费地的货物流动。从原材
数据分析说明1拆零EQ分析对此时间段内整件出库件数为零,拆零出库件数大于零的所有出库订单的出库件数按照0。125,0。25,0。5,0。75,1,6等分类标准进行分类。出库件数是指对每张订单的
面试数据分析,面试官都爱问什么?今年互联网有点冷,但是依然有暖的消息。比如临近年底还是放出来一些岗位。这周开始也有一些招聘平台做了年底的招聘活动,如果有正在找工作的小伙伴,可以抓紧准备起来,今天针对数据分析师数据
没有你的世界,我还是我我就是没有理想。我的理想就是你。不爱,不等于不喜欢。喜欢是另一种,比爱少,不动情,可是,也心动。他有多疼,她就有多疼。你为什么这么美?那时,我没有回答,现在,我可以告诉他因为,我为
教父评测叮零智能视频门铃配合小爱有屏音箱给你不一样的体验11月28日下午,在MIDC2018小米AIoT开发者大会上,小米生态链企业疯景科技CEO黄业桃发布了新品叮零智能视频门铃。这款智能门铃将传统门铃与摄像头结合,给传统门铃增加了视觉
教父评测新品首发叮零智能视频门铃简测教父评测叮零智能视频门铃简测11月28日下午,在MIDC2018小米AIoT开发者大会上,小米生态链企业疯景科技CEO黄业桃发布了新品叮零智能视频门铃。这款智能门铃将传统门铃与摄像
人力资源总监如何做好企业年度全员培训计划制定年度培训计划应注意的问题通常,各个企业都在做年度培训计划,但是由于企业管理水平人力资源干部素质以及企业对培训的看法的不同,导致各个企业的年度培训计划存在较大的差异。比较常见的做
盒子科技入选2020年度深圳市软件业务收入前百家企业榜单日前,盒子科技正式入选2020年度深圳市软件业务收入前百家企业榜单,此举标志着深圳市软件行业协会对盒子科技在规范经营稳健营收等方面的充分认可。盒子科技荣获2020年度深圳市软件业务
月饼券的秘密躺着就把钱挣了一块月饼的经济学华说中秋夜,亮光光,家家户户赏月忙。摆果饼,烧线香,大家一起拜月亮。分红柿,切蛋黄,赏罢月亮入梦乡。乘火箭,月宫逛,看看嫦娥和吴刚。时光真是过得飞快,不知不觉间,中
你们知道吗,华为创业背后不为人知的秘密,中华有为起名华为以前,有人跑去问任正非你觉得你成功的秘诀是什么?任正非回答成功没有秘密,任何人都可以学。我44岁时被开除,离婚欠债200万,本以为这辈子就这样完了。没想到,却因为读书这个人人都可习