来两道百度的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
下一篇 2016-09-19

相关推荐

  • N26 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 思路:    首先使用 who 查看当前系统上所有已经登录的用户,然后用 cut 或 awk 截取用户名,最后使用 sort 或 unqi 去除重复信息。命令:    who | cut -d’ ‘ -f1 …

    Linux干货 2017-02-25
  • 第二十一周作业

    1、回顾并详细总结MySQL的存储引擎、索引; 常用存储引擎的对比: 特点 MyISAM InnoDB MEMORY MERGE NDB 存储限制 有 64TB 有 没有 有 事务安全 支持 锁机制 表锁 行锁 表锁 表锁 行锁 B树索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 数据缓存 支持 支持 支持 索引缓存 支持…

    2017-07-29
  • 开发团队的效率

    我之前写过一篇叫《加班与效率》的文章,从概念上说了一些我对“效率”的认识,但是那篇文章趋于概念化,对于一些没有经历过这样的环境的同学来说,可能会觉得太抽象了。很早以前就想写一篇更具体一点的,可执行的文章与《加班与效率》这篇文章相辉映,并再把我两年前在杭州QCon上的那个“鼓吹工程师文化”的《建一支强大的小团队》(新浪微盘)的观点再加强一下。 但是我遇到了一些…

    Linux干货 2016-08-15
  • AIDE入侵检测

    AIDE

    当一个入侵者进入了你的系统并且种植了木马,通常会想 办法来隐蔽这个木马(除了木马自身的一些隐蔽特性外, 他会尽量给你检查系统的过程设置障碍),通常入侵者会 修改一些文件,比如管理员通常用ps -aux来查看系统进 程,那么入侵者很可能用自己经过修改的ps程序来替换掉 你系统上的ps程序,以使用ps命令查不到正在运行的木马 程序。如果入侵者发现管理员正在运行crontab作业,也 有可能替换掉crontab程序等等。所以由此可以看出对于 系统文件或是关键文件的检查是很必要的。目前就系统完 整性检查的工具用的比较多的有两款:Tripwire和AIDE ,前者是一款商业软件,后者是一款免费的但功能也很强 大的工具

    2018-01-08
  • 文本处理-三剑客-awk

    报告生成器,格式化文本输出
    awk [options] ‘BEGIN{ action;… } pattern{ action;… } END{ action;… }’ file …

    2018-03-16
  • 计算机组成及各部分功能

    计算机组成及各部分功能 计算机组成 区别于利用机械原理对数据进行处理的机械计算机,计算机现在一般都指电子计算机,即电脑。计算机是一种利用电子学原理,根据一些列指令对数据进行处理的工具。 不管是机械计算机还是电子计算机其主要目的还是代替人来完成一系列的数据计算。1941年夏天诞生的阿塔纳索夫-贝瑞计算机是世界上第一部电子计算机,使用了真空管计算器,二进制数值,…

    Linux干货 2016-10-27