shell 日常工作文本用到的一些脚本整理...

1990阅读 0评论2016-01-31 eatmyshort
分类:LINUX

1.打印99乘法表

点击(此处)折叠或打开

  1. awk 'BEGIN{for(n=1;n<=9;n++){for(i=1;i<=n;i++)printf i"x"n"="i*n" ";print}}'
2.打印最大的一行
a 100
a 101
a1 100
b 102
c 100
b 110
c1 110
a 210
要求:第一列里每个相同字符的第二列的最大值

点击(此处)折叠或打开

  1. sort -k2,2nr urfile | awk '!a[$1]++'
  2. 或者
  3. awk 'a[$1]<$2{a[$1]=$2}END{for(i in a)print i,a[i]}' file
3.
13338695867苏州关注类点击手机摩托罗拉motox(x+1)(XT1085)
13338697913苏州关注类点击手机华为P8ALE-CL00
要求:在号码后面加入逗号

点击(此处)折叠或打开

  1. sed 's/.\{11\}/&,/1' file #1假如逗号的次数

4.

点击(此处)折叠或打开

  1. 文本
  2. "abc","abc","abc","abc","abc"
  3. "abc","abc","abc
  4. ","abc","abc"
  5. "abc","abc","abc","abc","abc"
  6. "abc","abc","abc","abc","abc"
  7. "abc","abc","abc","abc","abc"
  8. "abc","abc","abc","abc","abc"

  9. awk -F, 'NF==5{print}NF!=5{getline a;print $0""a}' file.txt
5.

点击(此处)折叠或打开

  1. 要求是把文件中所有137,139等等开头的11位手机号码,中间几位替换成*
  2. 如137******42

  3. echo "13512507633"|sed '/^135\|137\|139......../s/\(...\).*\(..\)/\1\*\*\*\*\*\*\2/'
6.

点击(此处)折叠或打开

  1. 按照列拆分文件
  2. cat 1.txt
  3. A B C D E
  4. F G H I J
  5. K L M N O
  6. P Q R S T
  7. U V W X Y

  8. awk '{print $1 > "1.txt" ;print $2 > "2.txt"}' file

  9. awk '{for(i=1;i<=NF;i++)print $i >i".txt"}' file










上一篇:通过smaba服务器把windows2003一个盘共享给linux(centos7.1)
下一篇:mysql利用存储过程批量插入数据