sed 替换数字为空

sed -r 's/[0-9]+//g' data.txt

sed 不考虑特殊字符进行替换

sed -e 's#user_id`#user_id#g' data.txt

sed 正则替换

sed -r "s/user_id='(.*?)'/user_id=''/g" > data.txt  

awk 指定多个分割字符

cat  update.txt  | awk -F 'QUERY|SET|WHERE' '{print $1,"where" $3;}' >update_filter.txt

urldecode 对文本进行decode

vim ~/.bash_profile
增加
alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.stdin.read())"'

然后就可以进行decode

grep or

grep -E "Can't connect to MySQL|No host could be connected|Lost connection to MySQL server|Connect to Mysql"  decode-ral-worker.log.wf.2016112808 | wc -l

统计排序-降序去重

cat delete.txt  | sort | uniq -c | sort -rn -k 1 > uniq_delete.txt

grep and

grep -E 'distinct.*station_id' log.txt

grep not

grep -v 'mysql' filename

awk 格式化输出

awk -F 'err_no|err_info|extra=' '{ printf("err_no=%s,error_info=%s\n",  $2, $3); }'  warn.txt

# comm 两文件做差集 comm命令的参数 -1 不显示只在第1个文件里出现过的列。 -2 不显示只在第2个文件里出现过的列。 -3 不显示只在第1和第2个文件里出现过的列。 comm - 12 就只显示在两个文件中都存在的行; comm - 23 只显示在第一个文件中出现而未在第二个文件中出现的行; comm - 123 则什么也不显示。 comm a.txt b.tx comm -1 a.txt b.txt

# tac cat的变身,逆序查看文件内容

rsync 忽略.git 或.svn

rsync -avr   --exclude=.git --exclude=.svn  from to