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

相關推薦

  • 正則表達式

    正則表達式是一種以一些字符賦予特殊意義之后,用來表達字符串,用以篩選各種形式的字符串用來進行查找、替換、刪除等各種文本編輯作用的一種表示方式。 正則表達式的特殊字符 字符表示 .   可以表示任意可打印字符 [] 中括號范圍內任意單個字符 [^] 中括號范圍外任意單個字符 (相對所有可打印字符) [:space:] 表示任意單個空白字符 [:dig…

    2017-08-03
  • SSH協議詳解

    OpenSSH 一、 前言 使用SSH可以在本地主機和遠程服務器之間進行加密地傳輸數據,實現數據的安全。而OpenSSH是SSH協議的免費開源實現,它采用安全、加密的網絡連接工具代替了telnet、ftp等古老明文傳輸工具。 SSH(Secure Shell)是建立在應用層和傳輸層基礎上的安全協議。SSH是目前較可靠,專為遠程登陸會話和其他網絡服務提供安全性…

    Linux干貨 2016-12-16
  • 第七周 N21 總有刁民想害朕

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;        mke2fs -t ext4 /dev/sdb5 -b 2048 -m 2 -L "MYDATA&quot…

    Linux干貨 2016-08-08
  • 馬哥教育網絡班22期-第2周博客作業1

    1、Linux上的文件管理類命令都有哪些?其常用的使用方法及其相關示例演示。    文件管理類命令:cp、mv、rm 1.1 cp命令    cp – copy files and directories    復制文件或目錄 【SYNOPSIS】    單源復制:c…

    Linux干貨 2016-08-22
  • LVS實現負載均衡wordpress

    項目構建: LVS實現基于https wordpress 組建 必需軟件: nfs-utils-1.2.3-70.el6.x86_64 配置步驟: 1.在D主機設置NFS共享目錄 /app/nfsdata #mkdir /app/nfsdata //最好用LVM 實現在線擴展 #chown mysql: /app/data //確認該主機mysql用戶存在 …

    2017-05-12
  • 系統自動化安裝、selinux

    系統自動化安裝 系統啟動流程:bootloader–>kernel(initramfs)–>rootfs–>anaconda–>/sbin/init anaconda: 系統安裝程序    tui: 基于圖形庫curses的文本配置窗口 &nbsp…

    Linux干貨 2016-09-22
欧美性久久久久