yorknong 发表于 2018-8-22 13:03:55

经典shell

  1每两行合并
  sed 'N;s/\n//'
  2每行后加空行
  sed 'G'
  3计算行数(类似wc -l)
  sed-n '$='
  4将foo替换成bar 并且出去包含baz的行
  sed '/baz/!s/foo/bar/g'
  5匹配到regex的行后加以空行
  sed '/regex/G'
  6每一行首加五个空格
  sed 's/^/   &/g'
  7 统计出空白行的行号
  grep -n '^$'
  8文件批量重命名
  find ./ -name "*.txt" -printf %f\\n|sed 's/\(.*\)\.txt/mv & \1\_mall\.txt/'|sh
  find ./ -name "*.sh" -printf %f\\n |awk -F . '{print $1}'|xargs -i mv {}.sh {}.shell
  find ./ -name "*.sql" |while read fname;do echo mv $fname ${fname/.sql/.LOG};done
  9scp 和tar组合压缩快速传输
  tar c ./ |ssh 192.168.100.1 "cd /opt/aaa && tar -x"
  10 统一id对应的号码
  awk -F: '{a[$1]=a[$1]"\n"$2;b[$1]++}END{for (i in a) print "["i"]""\t"b a}' file.txt

页: [1]
查看完整版本: 经典shell