可可熊的窝

shell脚本解题2

IN:Shell, 编程相关   Tags:    Comments:4

问题:
如下文本

60.208.0.224
60.208.103.192
131.9.124.72
60.208.20.119
60.208.20.9
2.110.213.40
8.56.32.24
60.53.37.128
60.3.98.1

怎么先按ip的第一位sort,然后按第二位sort,然后按第三,第四

结果是这样
2.110.213.40
8.56.32.24
60.3.98.1
60.53.37.128
60.208.0.224
60.208.20.9
60.208.20.119
60.208.103.192
131.9.124.72

解法:
1.

sort -t. -k1,1n -k2,2n -k3,3n -k4,4n

2.

 sed 's/\./ /g' urfile|sort -nt ' ' -k1 -k2 -k3 -k4|sed 's/ /./g'

问题:
httpd.conf文件中含有以下内容,要把Directory块中含有/usr/local/apache/cgi-bin这一块注释掉:

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all


AllowOverride None
OptionsNone
Orderallow,deny
Allow fromall


Optioin Index
Allow all

解法
1.

sed -r '/^(<directory .*cgi-bin.*)/{s/^/#/;:a;n;/^$/!s/^/#/;ta} ' httpd.conf 

今天写的最长的一行。

2.

sed  '/^</directory></directory><directory .*cgi-bin.*/,/^<\/Directory>/s/^/#/; ' httpd.conf

sed替换大全:

sed ‘s/foo/bar/’ # 替换第一次出现
sed ‘s/foo/bar/4′ # 替换第四次出现
sed ‘s/foo/bar/g’ # 替换所有的出现
sed ’1s/foo/bar/’ # 替换第一行第一次出现

07-15
2008

4 Comments for shell脚本解题2

Leave a Comment

loading...