高效率的Shell

1. 批量将Excel转为CSV文件

XLSX2CSV: https://github.com/dilshod/xlsx2csv

sudo easy_install xlsx2csv #安装Xlsx2CSV

 

find ./ -name "*.xls*" -print | xargs  -t -I {}  xlsx2csv -a {} {}_output  #查找并输出

 

2. Nginx日志分析

筛选原始日志:

sed -n '/30\/Mar\/2015/,/5\/Apr\/2015/ p' beta.xxx.com.access.log > 0330-0405.log

//筛选refer关键词并排序

awk '($11 ~ /atsm\/.*\//)' 17-23.log | awk '{print $11}' | sort | uniq -c | sort -r >atsm-17-23.log

//根据时间进行分割

sed -n '/21\/Jun\/2016:17/,/21\/Jun\/2016:23/ p' access.log > 17-23.log

 

特定页面分析并排队IP、蜘蛛访问:

cat 0330-0405.log | grep 'GET /zhuanti/play/Recruitment' | grep -Ev '21x.142.111.9x'| grep -Ev 'bot'|grep -Ev 'spider'|grep -Ev '22x.171.80.4x'| grep -Ev '5x.50.44.8x' |wc -l

 

3. 批量解压

find ./ -type f -name "*.gz" -exec gunzip -r {} \;

find ./ -type f -name "*.tar.gz" -exec tar zxvf {} \;

 

4.按顺序合并

for ((i=6;i<=8;i++))do echo access.log-2015040$i;done | xargs cat {} >> mynew.txt

 

5. 导入Nginx日志到Piwik系统

python /Applications/AMPPS/www/piwik/misc/log-analytics/import_logs.py --debug --show-progress --login=cbcye --password=haha --idsite=2  --dry-run  --recorders=4 --enable-http-errors --enable-http-redirects --enable-static --enable-bots --url=http://localhost/piwik/ ~/Downloads/07.log 

 

6. 创建相同子目录不包括文件 

ls /work/code/game/games -print |xargs -t -I {} mkdir /work/redirect/game_to_product/{}

 

7. 拷贝文件到所有目录中

 ls | awk '{print $NF}' | xargs -t -I {} cp /work/redirect/to_other_index.php {}/index.php

 

8. 添加内容到首行,会生成一个以old为后缀的文件复本

sed -iold '1i\'$'\n''姓名,手机号'$'\n' test.csv

 

9. 按行记录拆分文件,-a指定生成文件名序列的长度,默认为2 

split -a 3 -l 999 300w.csv out_

 

10.查找文件并添加首行的文件中

find ./ -name 'out_*' | xargs -t -I {} sed -i _old '1i\'$'\n''姓名,手机号'$'\n' {}

 

11.批量改名

find ./ -name "icon copy*.jpg" | sed 's/icon copy.jpg$//g'|xargs -t -I {} mv "{}icon copy.jpg" {}logo.jpg

 

12.批量删除

find ./ -name "icon copy*.jpg" -exec rm -rf {}\;

 

13. 统计文件夹下所有文件夹个数

ls -l |grep "^d"|wc -l

 

14. 删除文件大小小于10k的文件

find ./ -name '*.html' -size -10kc |xargs -t -I {} rm -rf {}

 

15.批量修改文件夹名称

find ./ -name "*.bin" -exec rename "s/.bin/.json/" {} \; 

posted on 2015-02-06 21:35  Gary Zhang  阅读(594)  评论(0编辑  收藏  举报

导航