• 3.22. grep sed re


    1.整理正则表达式博客

         re  http://www.cnblogs.com/oyoui/p/6599846.html

    2.grep(正则表达式及字符处理)

    1.显示出所有含有root的行:
    [root@web2 mnt]# grep 'root' passwd 
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    
    2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:
    [root@web2 mnt]# grep -A 2 -B 2 'root' passwd 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    --
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    [root@web2 mnt]# grep -A 2 -B 2 'bash' passwd 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    --
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    chrony:x:997:995::/var/lib/chrony:/sbin/nologin
    jack:x:1000:1000:jack:/home/jack:/bin/bash
    
    3. 显示出有多少行含有nologin。
    [root@web2 mnt]# grep -n 'nologin' passwd 
    2:bin:x:1:1:bin:/bin:/sbin/nologin
    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4:adm:x:3:4:adm:/var/adm:/sbin/nologin
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10:operator:x:11:0:operator:/root:/sbin/nologin
    11:games:x:12:100:games:/usr/games:/sbin/nologin
    12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13:nobody:x:99:99:Nobody:/:/sbin/nologin
    14:systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
    15:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    16:dbus:x:81:81:System message bus:/:/sbin/nologin
    17:polkitd:x:998:996:User for polkitd:/:/sbin/nologin
    18:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    19:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    20:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    21:chrony:x:997:995::/var/lib/chrony:/sbin/nologin
    
    4.显示出那些行含有root,并将行号一块输出。
    [root@web2 mnt]# grep -n 'root' passwd 
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin
    
    5.显示出文件中
    
    6.新建用户
    abominable
    abominate
    anomie
    atomize
    编写正则表达式,将他们匹配出来
    [root@web2 mnt]# egrep 'abominable|abominate|anomie|atomize' passwd 
    abominable:x:1001:1001::/home/abominable:/bin/bash
    abominate:x:1002:1002::/home/abominate:/bin/bash
    anomie:x:1003:1003::/home/anomie:/bin/bash
    atomize:x:1004:1004::/home/atomize:/bin/bash
    
    7.建四个用户
    Alex213sb
    Wpq2222b
    yH438PIG
    egon666
    egon
    过滤出用户名组成是字母+数字+字母的行
    [root@web2 mnt]# egrep '[a-Z]+[0-9]+[a-Z]+' passwd 
    Alex213sb:x:1005:1005::/home/Alex213sb:/bin/bash
    Wpq2222b:x:1006:1006::/home/Wpq2222b:/bin/bash
    yH438PIG:x:1007:1007::/home/yH438PIG:/bin/bash
    
    8.显示出/etc目录下所有包含root的文件名
    
    9. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行
    [root@web2 mnt]# egrep -v '^#|^$' /etc/ssh/sshd_config 
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    SyslogFacility AUTHPRIV
    AuthorizedKeysFile	.ssh/authorized_keys
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials no
    UsePAM yes
    X11Forwarding yes
    UsePrivilegeSeparation sandbox		# Default for new installations.
    AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
    AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
    AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
    AcceptEnv XMODIFIERS
    Subsystem	sftp	/usr/libexec/openssh/sftp-server

    3.:sed作业:以/etc/passwd文件为模板

    1,删除文件每行的第一个字符。
    sed -r 's/^(.)(.*)/2/' passwd
    
    2,删除文件每行的第二个字符。
    sed -r 's/^(.)(.*)/2/' passwd
    
    3,删除文件每行的最后一个字符。
    sed -r 's/^(.)(.)(.*)/13/' passwd
    
    4,删除文件每行的倒数第二个字符。
    sed -r 's/(.*)+(.)(.)$/13/' passwd 
    
    5,删除文件每行的第二个单词。
    
    
    6,删除文件每行的倒数第二个单词。
    sed -r 's/([^a-Z])([a-Z]+)([^a-Z])([a-Z]+)$/134/' passwd
    
    7,删除文件每行的最后一个单词。
    sed -r 's/(.*)+([^a-Z])([a-Z]+)$/3/' passwd
    
    8,交换每行的第一个字符和第二个字符。
    sed -r 's/(.)(.)(.*)+/213/' passwd
    
    9,交换每行的第一个字符和第二个单词。
    sed -r 's/^(.)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)+/1- 2-3 -4/' passwd
    
    10,交换每行的第一个单词和最后一个单词。
    sed -r 's/([a-Z]+)(.*)([^a-Z]+)([a-Z]+)$/4231/' passwd
    
    11,删除一个文件中所有的数字。
    sed -r '/[0-9]+//g' passwd
    
    12,删除每行开头的所有空格。
    sed -r 's/^ *//g' passwd
    
    13,用制表符替换文件中出现的所有空格。
    sed -r 's/ /	/g' /etc/passwd
    
    
    14,把所有大写字母用括号()括起来。
    sed -r 's/[A-Z]/(&)/g' /etc/passwd
    
    15,打印每行3次。
    sed 'p;p' /etc/passwd
    
    16,只显示每行的第一个单词。
    sed '1~2d' /etc/passwd
    
    17,打印每行的第一个单词和第三个单词。
    
    18,用命令获取格式为    mm/yy/dd    的日期格式,结合管道,将其换成   mm;yy;dd格式
  • 相关阅读:
    如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
    PHP学习之十:foreach
    asp.net 上传控件
    程序员转型不得不说的事 成为管理者
    博客无法使用外站图片,暂停更新一段时间
    C#控制光驱开关
    通过输入方式在Android上进行微博OAuth登录
    .Net 绑定Dropdownlist的时自定义组合字段后显示
    XNA那些事(四) 3D知识初步
    jQuery实现图片延迟加载
  • 原文地址:https://www.cnblogs.com/golangav/p/6599872.html
Copyright © 2020-2023  润新知