來兩道百度的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.www58058.com/36802

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

相關推薦

  • ELK+RabbitMQ架構處理nginx及tomcat日志

    前言       查看日志的傳統方法是:登錄操作系統,使用命令工具如cat、tail、sed、awk、grep等等進行過濾輸出后分析,處理少量日志還好,日志量大處理效率就沒那么高了。而且很多情況下開發人員需要查看并分析日志進行排錯,但他們對Linux命令又不是太熟悉,而且有時候又不能賦予他們服務器權限,更多時…

    Linux干貨 2016-08-02
  • 第七周小練習

    1.創建一個10G分區,并格式為ext4文件系統 (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl (2)掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 fdisk /dev/sdb n p 1 +10G w mke2fs -t&nbs…

    Linux干貨 2017-01-05
  • 磁盤分區相關知識

    磁盤分區相關知識 使用磁盤分區的過程設備識別→設備分區→創建文件系統→標記文件系統→在/etc/fstab文件中創建條目→掛載新的文件系統 分區不是必須的,但是分區是必要的:優化I/O性能實現磁盤空間配額限制提高修復速度隔離系統和程序安裝多個OS采用不同文件系統 不重啟激活新添加的磁盤:echo “- – -” > …

    Linux干貨 2017-08-20
  • DNS and BIND 進階

    主DNS服務器的ip地址:192.168.1.109 主DNS服務器主機名:bogon 正向區域名:sh.com 反向區域名:1.168.192.in-addr.arpa 正向區域文件名稱:/var/named/sh.com.hosts 反向區域文件名稱:/var/named/192.168.1.rev 配置主文件/etc/named.conf過程 1、編輯…

    Linux干貨 2016-12-06
  • 18-系統啟動故障修復-實踐

    說明:重啟時可以選擇性在vmlinuz所在行末尾添加 selinux=0;或者直接編輯/etc/selinus/config文件,更改 SELINUX=disabled 關閉SELINUX??梢员苊獯驑撕?,節省啟動時間 以下操作都需要進入bootloader引導加載項修改內核啟動參數,在vmlinuz所在行末尾添加一個啟動選項 如何進入bootloader引…

    2017-04-02
  • 簡述動靜分離

        今天來簡述一下如何實現wordpress的動靜分離以及讀寫分離      首先來放出大圖。   1.來看圖說話     首先來介紹一下這張圖    最前端的兩臺機器是  負責調度后端主機請求動…

    2017-05-18
欧美性久久久久