shell脚本

  • 一个文件夹下有多个文件,每个文件中有多行数据,每行数据都是key:value的格式,现在需要文件夹下的所有文件,将每个文本中的key作为1行,以空格隔开,整理到一个文本中。
for i in `ll kmeans |awk '{print $9}' `
cat kmeans/$i | awk '{printf $1" " }'|awk '{print $0}' |awk '{print $0"\n"}'>> result.txt
awk '{i=1; while(i<=NF){print $i; i++ } ;}' clusterd.txt
cat intent_recognition.txt|awk '{gsub(/{|}|:|"|a|b|e|s|,/,"",$0) ;print $0}'
cat keyword_datum.txt |awk '{ if (NF != 0) {printf $1",";printf $2" "} else print ""}'
1、打印不换行:使用printf
2、if else 结构:多条语句用大括号包起来,单条语句直接写
  • 删除不足2列的行
    1、NF 代表被切割出来的列数
    2、awk 括号中的if语法是'{ if ( condition ) { code block} }'
 awk '{if(NF>1 ){print $0"\n"}  }' result.txt > r2.txt
  • 按第一列统计出现的次数,uniq -c可以做这件事。
cat click_data.csv | awk -F',' '{print $1}' | uniq -c
  • 按第二列排序
sort -t' ' -n -k2 click_number.csv
  • redis导入数据
awk '{cmd="redis-cli --raw SADD se:cluster ""\""$0"\"";system(cmd)}' clusterd.txt
  • java异常分析
    1、-F 多个连续的字符串作分隔符 -F"xsd"
    2、分割字符串中包含"["或者"]",使用转义符号
 cat log |grep -E ERROR|awk -F'\\] \\[' '{print $2}'|sort |uniq
sudo cat app_20881.log |grep -E ERROR|awk -F'\\] \\[' '{print $2 }'|sort|uniq |awk '{cmd="cat app_20881.log|grep '\''''"$0"'\'' |wc -l";system(echo cmd)}'
sudo cat app_20881.log |grep -E ERROR|awk -F'\\] \\[' '{print $2 }'|sort|uniq |awk '{print $0}'


awk '{cmd="cat app_20881.log|grep '\''''"$0"'\'' |wc -l";system(cmd)}'

cat app_20881.log|grep "org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] - Failed to invoke @ExceptionHandler method: public com.dmall.bigdata.domain.Result> com.dmall.api.searchengine.AppConfiguration$GlobalExceptionHandler.handleException(java.lang.Exception)"|wc -l

  • for循环模拟并发,记录请求时间
for i in {1..500}; do curl -o /dev/null -s -w %{time_total}"\n" "http://192.168.2.136:8080/jian_so?w=java%E6%95%99%E7%A8%8B" ; done

cat intent_recognition.txt|awk '{gsub(/{|}|:|"|a|b|e|s|,/,"",$0) ;print $0}'

你可能感兴趣的:(shell脚本)