来两道百度的shell开胃菜

1、写脚本实现,可以用shell、perl等。在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。

方法1:

#!/bin/sh
for files in `find /tmp -type f -name "abc*"|head -n 100`
do
sed -n '1p' $files>>new
done

方法2:

find /tmp -type f -name “abc*” | head -n 100 | xargs head -q -n 1 >> new

2、写脚本实现,可以用shell、perl等。把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。 

方法1:

grep -vxFf a b >c | wc -l
说明:
v-- invert match
x-- 匹配panttern为整行
Ff-- 读取文件中的每一行作为一个pattern

方法2:

注意事项:如果两个文件排序不一样的话,会出问题,所以下面采用了sort
sort a > a2
sort b > b2
comm -23 b2 a2 | wc -l

方法3:

diff -u b a | grep "^-[[:alnum:]]" | sed 's/-//' >>c
ls -l c | wc -l

说明:
-u:使用统一的输出格式

执行结果演示(一步步剖析):
# diff -u b a
--- b2016-08-17 13:35:03.248720247 +0800
+++ a2016-05-24 13:58:30.459664498 +0800
@@ -1,3 +1,4 @@
+root:x:0:0:root:/root:/bin/bash
 bin:x:1:1:bin:/bin:/sbin/nologin
 daemon:x:2:2:daemon:/sbin:/sbin/nologin
 adm:x:3:4:adm:/var/adm:/sbin/nologin
@@ -57,4 +58,4 @@
 zhang3:x:1131:1131::/home/zhang3:/bin/bash
 postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
 jumpserver:x:1132:1132::/home/jumpserver:/bin/bash
-zhang3f:x:1133:1133::/home/zhang3f:/bin/bash
+ops:x:1133:1133::/home/ops:/bin/bash

# diff -u b a | grep "^-[[:alnum:]]" | sed 's/-//g'
-zhang3f:x:1133:1133::/home/zhang3f:/bin/bash

脚本学习,切忌凭空想象,在掌握基础知识的同时,需要多验证,多与其他人交流。

原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/36802

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-09-19 13:49
下一篇 2016-09-19 13:49

相关推荐

  • N25-第一周作业

    一,描述计算机的组成及其功能。        计算机(Computer)是一种能够按照事先存储的程序,自动、高速地进行大量数值计算和各种信息处理的现代化智能电子设备。由硬件和软件所组成,两者是不可分割的。        计算机的组成分为控制…

    Linux干货 2016-12-03
  • 初学第一篇

    本菜鸡出现了。。。 第一次接触Linux,相对老司机要差远了,这几个月的辣眼睛,我就承包了,希望越来越好~~~ ————我是分割线,下面是正文————- 都是讲过的东西,不过里面内容都是11手打,作业也自己做后再比对答案 一、–第一天的课程暂时不写了,…

    Linux干货 2017-09-02
  • htop/vmstat/dstat/ps命令的使用

    Linux htop/vmstat/dstat/ps命令的使用 htop命令 htop工具在系统光盘这中是没有的,所以要下载的小伙伴们要自己创建yum仓库通过epel 安装 创建yum仓库 vim /etc/yum.repos.d/epel.repo [epel] name=Fedora EPEL baseurl=https://mirrors.tuna.t…

    2017-08-28
  • Linux磁盘和文件系统基础

    概述     Linux系统上,磁盘要正常的进行数据的存储,需要先进行分区,再进行格式化生成文件系统,最后挂载到某个目录下,才能进行正常的数据存取,本篇就介绍一下磁盘从分区到正常使用的几个步骤,具体分为以下几个部分:     1、磁盘的基础概念   &nbsp…

    Linux干货 2016-08-29
  • grub详解

    grub详解 1、GRUB(Boot Loader): grub:grub 0.x:grub1 legacy传统的版本 grub 1.x:grub2 grub legacy: 第1阶段:mbr 第1.5阶段:mbr之后的扇区中,让第一阶段中的boot loader能识别第二阶段所在分区上的文件系统 第2阶段:磁盘分区(/boot/grub/) 配置文件/et…

    2017-09-03
  • DNS服务和搭建

    DNS服务:        名字解析        DNS 服务        实现主从服务器        实现子域        实现view  …

    2017-04-16