zoukankan      html  css  js  c++  java
  • day 08 awk sed作业

    1.取出系统中的文件/etc/passwd的第七列(以:为分隔符)。

    [root@mpd ~]# awk -F: '{print $7}' passwd
    [root@mpd ~]# cut -d ':' -f 7 passwd
    

    2.已知文件test.txt内容如下,请给出输出test.txt文件内容时,不包含oldboy字符串的命令。

    test
    qiudao
    oldboy
    
    grep -v 'oldboy' test.txt
    sed -n '/oldboy/d' test.txt
    awk '!/oldboy/' test.txt
    

    3.只查看/etc/passwd文件内第5到第15行的内容***

    sed -nr '5,15p' /etc/passwd
    awk 'NR==5,NR==15' passwd
    awk 'NR>=5 && NR<=15' passwd
    

    4.把test.txt文件中的oldboy替换为oldgirl,给出命令

    [root@mpd ~]# sed -ir 's#oldboy#oldgirl#g' test.txt
    
    

    5.test.txt 的内容如下,要求过滤出不包含qiudao的行。有几种方法可以实现

    oldboy
    oldgirl
    qiudao
    grep -v 'qiudao' test.txt 
    sed '/qiudao/d' test.txt
    awk '!/qiudao/' test.txt
    

    6.把文件/etc/passwd文件中的/sbin/nologin替换为/bin/bash

    [root@mpd ~]# sed -i 's#sbin/nologin#bin/bash#g' passwd 
    vim /etc/passwd 进入编辑模式输入:%s#/sbin/nologin#/bin/bash#g
    

    7.把/etc/selinux/config文件中的SELINUX=enforcing行中的enforcing替换成disabled

    sed -i 's#enforcing#disabled#g' /etc/selinux/config
    

    8.现将文件b.txt 中的所有123 替换成def,请问如何实现?

    sed -i 's#123#def#g' b.txt
    
    

    9.将文件的test.txt中的第10行的oldboy改为oldgirl

    sed -i '10s#oldboy#oldgirl#g' test.txt
    

    10.请执行命令取出linux中eth0的IP地址(请用cut,有能力者也可分别用awk,sed命令答)。

    [root@mpd ~]# ip a s eth0 | head -3 | tail -1 | cut -d ' ' -f6 | tr -d '/24'
    10.0.0.100
    [root@mpd ~]# ip a s eth0 | sed -n '3p' | sed -r 's#(^.*inet )(.*)(/24.*)#2#g' 
    10.0.0.100
    [root@mpd ~]# ip a s eth0 | awk 'NR==3' | awk -F '[ /]*' '{print $3}'
    
    

    11.使用命令调换/etc/passwd文件里 root 位置和/bin/bash 位置? 即将所有的第一列和最后一列位置调换?

    [root@mpd ~]# sed -rn 's#(^.*)(:x.*:)(.*)#321#gp' passwd
    [root@mpd ~]# awk -F '[:]' -vOFS=":"  '{a=$1;$1=$7;$NF=a;print}' passwd
    

    12.先拷贝,再删除/etc/passwd文件的前三行内容。

    [root@mpd ~]# sed -i '1,3d' passwd
    awk 'NR>3' passwd 
    

    13.使用sed命令打印出/etc/passwd文件的第一行到第三行

    sed -n '1,3p' /etc/passwd
    

    14.过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。(三种方法)

    [root@mpd ~]# sed -rn '/3306|1521/p' /etc/services
    awk '/3306|1521/' /etc/services
    grep -E '3306|1521' /etc/services
    

    15.在linux 系统中,当LAN(局域网)内没有条件记案例DNS 服务器,***
    但又想让局域网内的用户可以使用计算机名互相访问时,应配置(/etc/hosts )文件(请写全路径)

    
    

    16.写出redhat中,配置网卡及dns的配置文件是什么?有什么区别?***

    #  即是配置网卡也是dns配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 
    #  重启网卡配置文件才能生效
    #  dns 配置文件 /etc/resolv.conf  立即生效
    

    17.若要将鼠标从VM中释放出来,可按()键完成。

    ctrl+AIt
    

    18.如何统计/etc下有多少个目录,不包括隐藏目录,只显示目录个数。

    [root@mpd ~]# tree -d /etc/ | tail -1
    611 directories
    
    

    19.统计secure.log文件中每个ip地址破解你用户密码的次数(包含Failed password字符串的行属于破解密码的,
    日志群里有,文件很大,建议不要使用cat打开)。

    grep 'Failed password' secure.log | sort | uniq -c | sort -nr
    

    20.输入last,统计当前连接本机的每个远程终端IP的连接总次数

    [root@mpd ~]# last | sort | uniq -c | sort -n
    
    

    21.输入lscpu,取出当前系统的cpu核心数

    [root@mpd ~]# lscpu | sed -n '6p'
    Thread(s) per core:    1
    
    

    22.输入df -h,取出当前系统根分区剩余可用磁盘空间

    [root@mpd ~]# df -h | sed -n '2p' | sed -nr 's#(.*1.4G  )(.*)(   8.*)#2#gp'
     18G
    
    [root@mpd ~]# df -h |awk 'NR==2' | awk  '{print $4}'
    18G
    
    

    23.显示文件/proc/meminfo中以s开头的行(忽略大小写)

    [root@mpd ~]# grep -i '^s' /pros/meminfo
    

    24.执行命令echo "I am qls,myqq is 1176494252">/oldboy/oldboy.txt,
    现在需要从文件中过滤出“qls”和“1176494252”字符串,请给出命令?(最少三种方法)

    [root@mpd ~]# awk -F '[ ,]' '{print$3,$NF}' oldboy.txt 
    qls 1176494252
    [root@mpd ~]# sed -nr 's#(.*m )(.*)(,.*s)(.*)#24#pg' oldboy.txt 
    qls 1176494252
    [root@mpd ~]# tr ',' ' ' < oldboy.txt  | cut -d ' ' -f3,6
    qls 1176494252
    
    

    25.接上题,如果需要从文件中过滤出“qls,1176494252”字符串,请再给出命令?

    [root@mpd ~]# sed -nr 's#(.*m )(.*)(my.*s )(.*)#24#gp' oldboy.txt 
    qls,1176494252
    [root@mpd ~]# awk -F '[ ,]' '{print$3","$6}' oldboy.txt 
    qls,1176494252
    
    

    26.我想在/data/oldboyedu目录下面创建 一个oldboy.txt文件,出现了如下报错。

    [root@qiudao ~]# touch /data/oldboyedu/oldboy.txt
    touch: cannot touch ‘/data/oldboyedu/oldboy.txt’: No such file or directory
    问:为何出现这样的错误?该怎么解决?
    data/oldboyedu/ 两个目录一个或者两个都不存在 先创建目录在创建文件
    

    27.翻译题

    01).command not found  				命令找不到				   
    02).No such file or directory  		没有这样的额目录或者目录	   
    03).File exists  					文件不存在		
    04).Is a directory  				这是个目录		
    05).Not a directory  				不是一个目录
    

    28.在/backup下创建10个.txt的文件,找到/backup目录下所有后缀名为.txt的文件

    mkdir -p /backup/{1..10}.txt
    find /backup -type f -name '*.txt'
    
    

    29.显示/etc/services文件的第10行到第20行的内容?

    [root@mpd ~]# sed -n '10,20p' /etc/services
    [root@mpd ~]# awk 'NR>=10 && NR<=20' /etc/services
    
    

    30.显示文件/etc/services的大小?

    [root@mpd ~]# wc -c /etc/services
    
    

    31.以“:”为分隔符,取出/etc/passwd第一行的第七列也就是最后一列的内容?(两种方法)

    [root@mpd ~]# sed -n '1p' /etc/passwd | awk -F: '{print $7}'
    /bin/bash
    [root@mpd ~]# head -1 passwd | cut -d ':' -f 7 
    /bin/bash
    
    

    32.找出/var/log目录中以.log结尾的文件,并显示这些文件的属性信息。

    [root@mpd ~]# ll /var/log/*.log
    
    

    33.寻找名称为mytest.log的文件

    find / -type f -name 'mytest.log'
    

    34.用命令行更改config.txt文件,把里面的“name”更改为“address”

    sed -i 's#name#address#g' config.txt
    
    

    35.把/etc/passwd文件中的:替换成#

    sed -i 's#:###g' /etc/passwd
    

    36.说明下面这几个文件的作用:/etc/hostname、/etc/resolv.conf、/etc/hosts

    /etc/hostname: 主机名的配置文件
    /etc/resolv.log: dns根服务解析文件
    /etc/hosts :主机名与ip地址映射关系的文件
    

    37.尝试使用sed命令的后向引用和awk命令取出ip地址,请分别使用ip和ifconfig命令取出。

    [root@mpd ~]# ip a s eth0 | sed -nr '3s#(.*t )(.*)(/.*)#2#gp'
    10.0.0.100
    [root@mpd ~]# ifconfig eth0 | sed -nr '2s#(.*et )(.*)(  net.*)#2#gp'
    10.0.0.100
    [root@mpd ~]# ip a s eth0 |awk ''NR==3| awk -F '[ /]*' '{print$3}'
    10.0.0.100
    [root@mpd ~]# ifconfig eth0 | awk 'NR==2' | awk -F '[ ]*' '{print$3}'
    10.0.0.100
    

    38.在123.txt文件末尾插入‘test’。(两种方法)

    sed -i '$atest' 123.txt
    echo 'test' >> 123.txt
    

    39.将/etc/passwd文件中第一行到第五行的root替换为admin?

    sed -ir '1,5s#root#admin#g' /etc/passwd
    

    40.统计nginx访问日志access.log中每个访问ip出现次数最多的10个。(已知ip在第一列,日志群里有)

    [root@mpd ~]# sed -nr 's#(.*)( - -.*)#1#gp' access.log | sort |uniq -c | sort -nr | head -10
      16033 139.226.172.217
       1041 47.102.42.79
        994 180.95.238.82
        727 113.140.249.33
        647 223.166.74.124
        525 112.87.125.55
        429 182.138.163.167
        373 112.87.125.53
        352 223.166.74.198
        308 182.138.158.169
    

    41.取出下列文件的权限如:0644 ?(两种方法)

    [root@qls ~]# stat  qls.txt 
      File: ‘123.txt’
      Size: 44        	Blocks: 8          IO Block: 4096   regular file
    Device: 803h/2051d	Inode: 67160518    Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2019-07-27 16:55:57.055131412 +0800
    Modify: 2019-07-27 16:55:50.098131214 +0800
    Change: 2019-07-27 16:55:50.101131214 +0800
    
    stat qls.txt | sed -nr '4s#(.*ss: ()(.*)(/-r.*)#2#gp'
    
    

    42.删除qls.txt文件中的第10行到20行。(两种方法)

    sed -i '10,20d' qls.txt
    awk 'NR<10||NR>20' passwd | xargs -L 1 echo >> hello; mv -f hello passwdr
    vim qls.txt :10,20d
    
  • 相关阅读:
    2018 ACM 网络选拔赛 徐州赛区
    2018 ACM 网络选拔赛 焦作赛区
    2018 ACM 网络选拔赛 沈阳赛区
    poj 2289 网络流 and 二分查找
    poj 2446 二分图最大匹配
    poj 1469 二分图最大匹配
    poj 3249 拓扑排序 and 动态规划
    poj 3687 拓扑排序
    poj 2585 拓扑排序
    poj 1094 拓扑排序
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/13301640.html
Copyright © 2011-2022 走看看