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

相关推荐

  • shell脚本编程练习

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态 在线的主机使用绿色显示 不在线的主使用红色显示 #!/bin/bash # for i in {1..254};do if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then echo -e…

    2017-11-15
  • 马哥教育21期网络班—第二周课程+练习

    目录管理类命令: mkdir, rmdir, tree mkdir mkdir [options] /path/to/somewhere -p: 存在于不报错,且可自动创建所需的各目录; -v: 显示详细信息 -m MODE: 创建目录时直接指定权限; tree tree:  需要安装  yum -y install …

    Linux干货 2016-06-29
  • linux终端类型

    人机交互界面:GUI、CLI GUI: gnome:c,gtk kde:c++,qt CLI: bash,zsh,sh,csh,ksh 不同CLI间跳转:alt+f1\f2\f3\f4   终端类型: 物理终端、控制台终端:/dev/console,控制台console 计算机显示器通常被称为控制台终端(Console) 虚拟终端:/dev/tty…

    Linux干货 2016-10-14
  • HipHop PHP实战(详解web运行模式)

    Note: These code examples assume the HipHop compiler is fully built. 1 . Setting Up Your Environment (构建环境) To get started, you need to configure two environment variables. cd…

    Linux干货 2015-04-10
  • linux三剑客之grep

    linux三剑客之grep        所谓三剑客的工具有“grep”、“sed” 、“awk”,他们都是不谋而合的文本搜索查找处理的强大工具。grep 是 Ken Thompson 写的,他也是 Unix 的创造者。 gerp及正则表达式    grep全称(GLobal search Regu…

    Linux干货 2016-08-08