5月28号 晚上8点:
文件格式如下:
123abc456
456def123
567abc789
789def567
要求输出:
456ABC123
123DEF456
789ABC567
567DEF789
初看上去知道这里需要用到大小写字母转化,还有数字位置转换等:
[root@fsailing1 shell]# sed 'y/abcdef/ABCDEF/' chen1.txt
123ABC456
456DEF123
567ABC789
789DEF567
[root@fsailing1 shell]# sed -r 's/([1-9]{3})([a-f]{3})([1-9]{3})/\3\2\1/g' chen1.txt
456abc123
123def456
789abc567
567def789
结合起来就是:
[root@fsailing1 shell]# sed -r 's/([1-9]{3})([a-f]{3})([1-9]{3})/\3\2\1/g;y/abcdef/ABCDEF/' chen1.txt
456ABC123
123DEF456
789ABC567
567DEF789
5月29号 下午4点
[root@fsailing1 shell]# sed 's/a/f/' chen.txt
f a a a a
fa
b b b b b
bb
c c c c c
cc
d d d d d
dd
[root@fsailing1 shell]# sed 's/a/f/g' chen.txt
f f f f f
ff
b b b b b
bb
c c c c c
cc
d d d d d
dd
5月30号下午2点:
文档的格式:
aa:bb
cc:dd
转变成:
bb:aa
dd:cc
[root@fsailing1 shell]# sed 's/\(.*\):\(.*\)/\2:\1/' chen1.txt
其中:这里反斜杠的意义在于转义字符。
bb:aa
dd:cc
ff:ee
ii:hh
5月31号下午4点:
册除空行和带#号的这一行:
在正则表达式中“.”表示任意一个字符,“*”表示任意多个前面的字符。
我们知道以什么字符开头的正则表达式是“^”开头的,那么空行就是“^$”表示以空开头以空结尾。
sed '/^$/d' /etc/vsftpd/vsftpd.conf
还有带有#号的也要删除,
sed '/\#.*/d' /etc/vsftpd/vsftpd.conf
[root@fsailing1 /]# sed -e '/^$/d' -e '/\#.*/d' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES