调试
x.sh -xv
[[ -f xx ]]||touch xx
[[ -s {string//pattern/replacement}
a='a,b,c'
echo ${a//,/ /}
- Contains 子字符串?
string="My string"
if [[ line; done < a.txt
cat a.txt | sed -e '/^$/d'
比较文件的修改时间
[[ file1.txt -nt file2.txt ]] && echo true || echo false
[[ file1.txt -ot file2.txt ]] && echo true || echo false
去掉第二列
cut -f 1,3-
把输出保存到变量里
( (echo 'out'; echo 'error' 1>&2) 2>&1 1>/dev/null)
a
error
{array[@]}
do
echo date +%Y-%m-%d
2012-12-24
date +%Y-m-%d –date ‘Dec 25'
2011-12-25
3}'
多种分隔符
4}'
NF}'
echo {var%.}
hack.fun.book
echo {var#.}
fun.book.txt
echo 2}'|cut -c 6-
清除僵死进程
ps -eal | awk '{ if (4}}' | kill -9
打印奇数行
awk 'NR%2' file
打印奇数行,偶数行
sed -n "0~2p" 1.sh
sed -n "1~2p" 1.sh
cat file | grep -A100 string
cat file | grep -B100 string #前面
cat file | grep -C100 string #前后
sed -n '/string/,+100p'
awk '/string/{f=100}--f>=0'
//////常用正则表达式
匹配中文字符的正则表达式:[u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:^
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15} //匹配正整数
^-[1-9]d //匹配整数
^[1-9]d|0 //匹配非正整数(负整数+ 0)
^[1-9]d.d|0.d[1-9]d //匹配负浮点数
^-?([1-9]d.d|0.d[1-9]d|0?.0+|0) //匹配非负浮点数(正浮点数+ 0)
^(-([1-9]d.d|0.d[1-9]d))|0?.0+|0 //匹配由26个英文字母组成的字符串
^[A-Z]+ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+ //匹配由数字、26个英文字母或者下划线组成的字符串
//生成10个随机数
!/bin/bash
for i in seq 1 10
do
name=echo $RANDOM|md5sum|cut -c1-10
touch /tmp/tmp$name
ls /tmp
done
function check_ip() {
IP=IP =~ ^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}(echo 1}')
a2=IP|awk -F. '{print (echo 3}')
a4=IP|awk -F. '{print a1 -le 255 -a a3 -le 255 -a IP available."
else
echo "IP ip
生成50以内的随机数
echo RANDOM%50+1))
cat /var/log/httpd/access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -n5
netstat -na|grep ESTABLISHED5}'
openssl rand -bash64 32
date -d "3 days" +"%F"
网友评论