零碎的东西,放在这里自己查找方便:)
判断一个文件是否为空:
line="`head -1 ./none`"; if [ -z "$line"] ; then echo "none"; else echo "got"; fi
find命令去除无权限输出:
find / -name libxml2.* 2>/dev/null
VI函数跟踪:
命令行模式下输入命令: :!ctags -R *
ctrl + } 跟踪
ctrl + o 返回
VI删除行首行尾空格:
删除行首空格:%s/^\s\+//
删除行尾空格:%s/\s\+$//
VI显示换行符:
set list
Linux下批量删除空文件(大小等于0的文件)的方法
find . -name "*" -type f -size 0c | xargs -n 1 rm -f
删除指定大小的文件,只要修改对应的 -size 参数就行,例如:
find . -name "*" -type f -size 1024c | xargs -n 1 rm -f
就是删除1k大小的文件。(但注意不要用 -size 1k,这个得到的是占用空间1k,不是文件大小1k的)。
如果只要删除文件夹或者名字连接等,可以相应的改 -type 参数,具体细节见 man find
或
find ./ -size 0 -exec rm {} \;
或
find ./ -size 0 | xargs rm -f &
或
for file in *
do
if[! -s ${file} ]
then
rm ${file}
fi
done
shell计算百分比:
echo "scale=2;$a/$b*100"|bc
获取今天是星期几(数字0-6):
date +%w
:%s/old_word/new_word/g
这个指令用在整个文件中替换特定字符串
显示脚本的运行记录:sh -x
查看端口和程序对应
netstat -anp
让环境支持中文:
export LC_ALL=zh_CN.GBK
export LANG=zh_CN.GBK
文件夹范围内(包括子目录)文件中的字符串替换:
perl:
perl -pi -e 's/oldStr/newStr/g' $(grep -lR oldStr *)
sed:
sed -i 's/oldStr/newStr/g' $(grep -lR oldStr *)
shell(awk)中取出xml标签:
awk ' BEGIN{FS= "[<>]"}{printf("%s\n",$3);}'
awk只输出某项值等于一个shell变量:
awk '{if(\$1==var) print}' var=${SHELL_VAR}
awk输出不换行:
1.输出时使用printf
2.输出后,利用tr -d ‘n’实现替换换行
3.awk ‘BEGIN{ORS=”"}{print $0;}’ //推荐
4.awk ‘{printf(“%s”,$0);}’
删除空行:
1,删除空行和空白字符组成的行: awk NF filename
2,仅删除空行:awk '/./' filename
sed /^[ ]*$/d tt
#the bracket contains a SPACE and a TAB
sed /^[[:space:]]*$/d
[[:space:]] 比 [[:blank:]]或[ ] 处理的情况更多一些.
阅读(2020) | 评论(0) | 转发(0) |