格式:awk ‘/匹配条件/{print}’文件名
awk -F: '/nginx/{print $1,$3}' passwd
-F: 表示以冒号做分割
/nginx/ 匹配nginx
例子:打印出IP地址,并且IP地址把点换成横杠
ifconfig | grep "inet addr:" | grep -v "127.0.0.1"|awk '{print $2}' |awk -F: '{print $2}' |awk -F. '{print $1"-"$2"-"$3"-"$4}'
我自己的实例

find 路径 -name "*.txt" -type d -mtime -1
查找路径下的名字是以 .txt结尾的、目录、时间是一天以内做最后修改的。如果是一天以前就是+1。
find 路径 -name "*.txt" -type d -mtime -1 | xargs rm -fr {} \ ;
删除前面找到的文件 | xargs 表示承接前面的,是连在一起使用的。
也可以把| xargs换成 -exec ,相比较-exec的适用范围更广,| xargs基本不会使用
find 路径 -name "*.txt" -type d -mtime -1 -perm 755
-perm 755 筛选755 权限的
grep过滤
grep -n --color "^root" ./passwd
显示行号,颜色,以root开头的
-v:取反
-n:显示行号
-i:忽略大小写
-a:以文本文件方式搜索
匹配test.txt文件里的IP地址(一个最基本的grep面试题,必会的)
Test.txt
111.111.111.1111
222.222.222.286
192.167.137.20
egrep --color "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"test.txt
[0-9]是在0-9之间的数,固定的格式。
{1,3}前面的0-9需要匹配1-3次,转义\. 。大括号表示匹配的次数
egrep --color "([0-9]{1,3}\.){3}[0-9]{1,3}$"test.txt
上面是做了精简的版本。因为前三个是一样的,所以直接匹配三次。
Shell使用if语句判断目录是否存在
-f:文件是否存在
-d:目录是否存在
-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-le:小于等于
-ge:大于等于
-z : 空字符串
$0:脚本名称
$?:上一条命令执行的是否正确
$#:处理参数的个数
$1:脚本处理的第一个参数
$2:脚本处理的第二个参数
#!/bin/bash
if [ ! -d /etc/nginx ];then
Mkdir -p /etc/nginx
echo “目录已经存在,请退出”
fi
成绩的判断
#!/bin/bash
scores=$1
if [ -z $scores ];then
echo “$0需要输入一个数字”
exit
fi
If [[ $scores -gt 85 ]];then
echo “very good”;
elif [[ $scores -gt 75 ]]; then
echo “good”;
elif [[ $scores -gt 60 ]];then
echo “pass ”;
else
echo “ no pass”
fi
3967

被折叠的 条评论
为什么被折叠?



