寻觅生命中的那一片浅草......

删除文本中的重复行(sort+uniq/awk/sed)

在进行文本处理的时候,我们经常遇到要删除重复行的情况。那怎么解决呢?
下面就是三种常见方法?
第一,用sort+uniq,注意,单纯uniq是不行的。
shell> sort file | uniq

这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。

第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。
shell> sort file | awk ‘{if ($0!=line) print;line=$0}’

当然,自己把管道后面的代码重新设计一下,可能不需要sort命令先排序拉。

第三,用sort+sed命令,同样需要sort命令先排序。
shell> sort file | sed ‘$!N; /^\(.*\)\n\1$/!P; D’

最后附一个必须先用sort排序的文本的例子,当然,这个需要用sort排序的原因是很简单,就是后面算法设计的时候的“局部性”,相同的行可能分散出现在不同的区域,一旦有新的相同行出现,那么前面的已经出现的记录就被覆盖了,看了这个例子就好理解拉。
ffffffffffffffffff
ffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
fffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeee
gggggggggggggggggggg

其实,这是我随便打进去的几行字,没想到就是必须用sort的很好例子,大家可以自己试试看。

参考资料:

[1] SED单行脚本快速参考
http://linux.chinaitlab.com/administer/381792.html
[2] 如何删除重复的行(sed或awk)
http://www.linuxsir.org/bbs/showthread.php?t=132848

转载自:http://www.91linux.com/html/article/shell/20090205/15636.html

安装ndoutils找不到mysql.h和errmsg.h

安装ndoutils-1.4b9时报以下错

# ./configure –enable-mysql –with-mysql=/usr/local/mysql
# make
cd ./src && make
make[1]: Entering directory `/root/nagiosddd/ndoutils-1.4b9/src’
gcc -fPIC -g -O2 -I/usr/local/mysql/include/mysql -DHAVE_CONFIG_H -c -o io.o io.c
In file included from io.c:11:
../include/config.h:261:25: error: mysql/mysql.h: No such file or directory
../include/config.h:262:26: error: mysql/errmsg.h: No such file or directory
make[1]: *** [io.o] Error 1
make[1]: Leaving directory `/root/nagiosddd/ndoutils-1.4b9/src’
make: *** [all] Error 2

解决方法
# vi include/config.h

#include <mysql/mysql.h>
#include <mysql/errmsg.h>
修改为
#include </usr/local/mysql/include/mysql/mysql.h>
#include </usr/local/mysql/include/mysql/errmsg.h>

nagios 监控出现It appears as though you do not have permission

It appears as though you do not have permission to view information for any of the hosts you requested…

If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.

修改/etc/cgi.cfg
vi /usr/local/nagios/cgi.cfg

use_authentication=1 #把1修改为0,保存
root@nagios#/etc/init.d/nagios restart

转载自:http://cqfish.blog.51cto.com/622299/150542

查看Linux网卡驱动版本

# ethtool -i eth0
driver: e1000e
version: 0.3.3.3-k6
firmware-version: 5.7-6
bus-info: 0000:0c:00.0

linux下挂载其他硬盘上lvm分区方法

在Fedora 10里试图挂载另外一块硬盘,其中的一个分区是LVM2格式的,不能直接mount,方法记录如下,以备不时之需。

1.首先使用vgscan 扫描 lvm 结果如下

[root@localhost ~]# vgscan
Reading all physical volumes. This may take a while…
WARNING: Duplicate VG name VolGroup00: Existing bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh (created here) takes precedence over 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM
WARNING: Duplicate VG name VolGroup00: Existing bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh (created here) takes precedence over 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM
WARNING: Duplicate VG name VolGroup00: Existing 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM (created here) takes precedence over bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh
Found volume group “VolGroup00″ using metadata type lvm2
WARNING: Duplicate VG name VolGroup00: Existing bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh (created here) takes precedence over 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM
Found volume group “VolGroup00″ using metadata type lvm2

2.通过 vgdisplay VolGroup00 查看 lvm 的 VG UUID

[root@localhost ~]# vgdisplay VolGroup00
WARNING: Duplicate VG name VolGroup00: Existing bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh (created here) takes precedence over 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM
— Volume group —
VG Name               VolGroup00
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No 3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               129.31 GB
PE Size               32.00 MB
Total PE              4138
Alloc PE / Size       4137 / 129.28 GB
Free PE / Size       1 / 32.00 MB
VG UUID               bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh

可以看出当前操作系统使用的VolGroup00的 VG UUID 是 bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh
说明 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM 这个VG UUID 是要另一块硬盘的lvm 分区

3.将第二块硬盘的VG的名字重命名

[root@localhost ~]# vgrename 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM /dev/vg01
WARNING: Duplicate VG name VolGroup00: Existing bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh (created here) takes precedence over 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM
WARNING: Duplicate VG name VolGroup00: Existing bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh (created here) takes precedence over 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM
WARNING: Duplicate VG name VolGroup00: Existing 1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM (created here) takes precedence over bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh
Volume group “VolGroup00″ successfully renamed to “vg01″

这个时候通过 vgdisplay 就可以看到 VG的信息了

[root@localhost ~]# vgdisplay
— Volume group —
VG Name               vg01
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No 4
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               34.50 GB
PE Size               32.00 MB
Total PE              1104
Alloc PE / Size       1103 / 34.47 GB
Free PE / Size       1 / 32.00 MB
VG UUID               1WnXRG-M0t1-z1A6-rppv-lltN-oDQB-IDonTM

— Volume group —
VG Name               VolGroup00
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No 3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               129.31 GB
PE Size               32.00 MB
Total PE              4138
Alloc PE / Size       4137 / 129.28 GB
Free PE / Size       1 / 32.00 MB
VG UUID               bgKw70-NEBI-QY6s-RvqU-3a59-N8E1-ruOWwh

4.激活VG

VG重命名后,默认是非ACTIVE状态,我们要通过以下方式激活VG

[root@localhost ~]# lvscan
inactive          ‘/dev/vg01/LogVol00′ [31.50 GB] inherit
inactive          ‘/dev/vg01/LogVol01′ [2.97 GB] inherit
ACTIVE            ‘/dev/VolGroup00/LogVol00′ [125.41 GB] inherit
ACTIVE            ‘/dev/VolGroup00/LogVol01′ [3.88 GB] inherit

激活 VG
[root@localhost ~]# vgchange -ay /dev/vg01
2 logical volume(s) in volume group “vg01″ now active

查看状态
[root@localhost ~]# lvscan
ACTIVE            ‘/dev/vg01/LogVol00′ [31.50 GB] inherit
ACTIVE            ‘/dev/vg01/LogVol01′ [2.97 GB] inherit
ACTIVE            ‘/dev/VolGroup00/LogVol00′ [125.41 GB] inherit
ACTIVE            ‘/dev/VolGroup00/LogVol01′ [3.88 GB] inherit
[root@localhost ~]# vgscan
Reading all physical volumes. This may take a while…
Found volume group “vg01″ using metadata type lvm2
Found volume group “VolGroup00″ using metadata type lvm2

到此为止,可以挂载系统了!

5.挂载lvm文件系统

[root@localhost mnt]# mount /dev/vg01 /mnt/sdb3

就可以访问了

源 : http://www.opensolution.org.cn/archives/431.html

2025年七月
« 5月    
 123456
78910111213
14151617181920
21222324252627
28293031