来两道百度的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

相关推荐

  • rpm包管理

    rpm包管理 rpm(RedHat Package Manager) 是RedHat公司发展的一种将软件安装到Linux系统的管理机制,也是一种数据库记录方法。 Linux系统上软件的安装主要分两种方式,从厂商发布的tarball通过编译来安装;或者使用厂商已经在相应平台上编译好的二进制文件。 从源码编译安装的程序,在漏洞修补以及软件功能升级时太过麻烦,并且…

    Linux干货 2016-11-18
  • linux grep manual

    名称    grep – 打印匹配的行语法:     grep [option] pattern [file…]     grep [option] [-e pattern]…

    Linux干货 2015-08-31
  • 第三周作业

    列出当前系统上所有已经登录的用户名,同一个用户登录多次,则只显示一次 [root@app02 ~]# who |grep -o -E '^\<[a-zA-Z]+\>'|sort -u root XIAOXIN 2. 取出最后登录到当前系统的用户相关信息 [r…

    Linux干货 2016-08-29
  • 三台主机部署phpwind

    PHPWind(简称:PW)的使命是让网站更具价值,让更多人从网络中享受便利,以提升生活品质。 phpwind是一个基于PHP和MySQL的开源社区程序,是国内最受欢迎的通用型论坛程序之一。phpwind第一个版本ofstar发布于2004年。截止2013年12月phpwind项目品牌由阿里云计算有限公司拥有,软件全面开源免费。 特点 1. 非凡的访问速度 …

    2017-06-13
  • awk命令详解

    简介: wak是一个强大的文本分析工具,也可以叫做报告生成工具。相对于grep的查找,sed的编辑,awk在对其数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格 为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有三个不同的版本:awk,nawk,gawk。我们目前所使用的awk一般指gawk,gawk是AWK和GN…

    Linux干货 2016-11-28
  • N26 第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 演示:     [root@47d523181d25 /]# cp -r /etc/skel/ /home/tuser1     [root@47d523…

    Linux干货 2017-02-25