Linux之awk学习(二)

星期日 08 7月 2012

aek 是一种模式扫描和处理语言,它搜索一个或者多个文件,以查看这些文件是否存在匹配指定模式的记录。
它在处理时不区分数字和文本。
1.awk -F : '$1 ~ /^s/ {print $1} ' /etc/passwd #在/etc/passwd文件中,搜索每行记录的第一个字段首字母为s的字段。
2.awk -F : '$1 ~ /^[sr]/ {print $1 ,"$"$2 }' /etc/passwd #在文件/etc/passwd中,搜索每行记录的第二个字段首字母为s或者r的字段。
3.awk -F : '$1 ~ /[rt]$/ {print $1,"$"}' /etc/passwd #在文件/etc/passwd中,搜索以r/t结尾的字段。
美元符号$的三个用法:
(1)在美元符号后根一个数字,表示第几个字段;
(2)在正则表达式中,美元符号强制在行尾或者字段末尾进行匹配;
(3)在字符串中代表自身。
4.awk -F : '$3 == 1000' /etc/passwd #搜索满足$3 == 1000的记录
5.awk -F : '/root/,/ mysql/' /etc/passwd #搜索从/root到/mysql的记录
6.awk '{print length,$0}' /etc/passwd #$0总表示当前记录,length 表示当前记录长度,包括分割副
7.awk 'length > 40 {print NR }' /etc/passwd #NR表示行号
8. if [ $# != 2 ]
    then
        echo "usage: demo field file"
        exit 1
fi
awk < $2 '{count[$'$1']++ } END { for( item in count )print item,count[item] }' | sort
9.使用单引号的另一种灵活方式可以在awk程序中扩展参数,即在命令行上使用-v选项,将字段编号传递给awk作为变量。
if [ $# != 2 ]
    then
        echo "usage: demo field file"
        exit 1
fi
awk -v "field1=$1" < $2 '{count[$field1]++ } END { for( item in count )print item,count[item] }' | sort

10.tr实用程序列出来自标准输入的单词,每行显示一个,sort使用程序将文件排序,把最长用的单词放在最前面。
tr -cs 'a-zA-Z' '[\n*]' < $1 |
awk '
    {count[$1]++} END {for (item in count)printf "%-15s%3s\n",item,count[item]}
    ' | sort -r -f -i
11.将日期当道报告中的方法。
if (test $# = 0)then
    echo "you must apply a filename."
    exit 1
fi
    (date;cat $1) |
awk 'NR == 1 {print "Report for",$1,$2,$3 "," $6}
NR > 1 {print $5 "\t" $1}'

Apache的配置
1.apache2.conf---全局配置文件,不要轻易修改
conf.d---------该目录存放一些一般性的配置
envvars-----------存放环境变量,一般不许要修改
httpd.conf-------------用户配置文件
mods-available--------------该目录下是已经安装的可用模块
mods-enable---------------该目录下是已经启用的模块
ports.conf-----------httpd服务的端口
sites-available---------该目录下是可用的虚拟主机
sites-enabled------------该目录下是已经启用的虚拟主机
其中,apache2.conf是apache2的主配置文件,它会读取上面列出的所有目录和文件。

原文地址:https://www.cnblogs.com/benshan/p/2585402.html