shell每日一句(3)

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









你可能感兴趣的:(c,shell,正则表达式,service,文档)