shell的一些tips

一些常用的shell技巧分享,很多都可以举一反三的扩展 :)


逐行处理文本

1
while read i;do echo "<p>$i</p>";done < test.txt

链接一行:可用于将一些文本格式化成php的数组格式等

1
cat test.txt | xargs | sed 's/ /","/g'

统计文本各行出现次数

1
cat test2.log | sort | uniq -c | sort -nrk1

两个文件的差集

1
2
# 想想为什么可以这么写
cat t1 t1 t2 | sort | uniq -u

去掉行尾的逗号

1
sed 's/[,]*$//g' test.txt

查看进程端口的占用

1
2
3
4
5
# 如查看mysql进程的端口占用

ps aux | grep -i mysql
netstat -apn | grep -i mysqld
lsof -i:端口号

查找文件

1
2
3
4
5
6
7
8
# 如查找普通文件
find ./ -type f

# 查找.zip文件
find ./ -name '*.zip'

# 查找目标文件并修改权限 后面的\;必须的,表示按行输出 {} 表示找到的文件路径
find . -type f -exec chmod 644 {} \;

删除utf8的bomb头

1
2
3
4
5
6
# 查找bomd头
grep -R $'\xEF\xBB\xBF' ./*
grep -r -I -l $'^\xEF\xBB\xBF' ./*

# 可使用vim替换
vim set nobomb