您的位置:首页 > 运维架构 > Linux

Linux之awk学习(二)

2012-07-10 22:28 211 查看

星期日 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的主配置文件,它会读取上面列出的所有目录和文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: