1. 程式人生 > >linux 查詢指定資料夾下包含某個字元的所有檔案,並去重輸出到檔案

linux 查詢指定資料夾下包含某個字元的所有檔案,並去重輸出到檔案

記錄實驗樓的"查詢指定檔案"比賽

  • 目標

        將 /etc 目錄下所有內容中包含 shiyanlou 字串的檔案的完整路徑都寫入 /home/shiyanlou/output 檔案中

        /home/shiyanlou/output 檔案中每一行包含一個檔案,這個檔案的內容中包含 shiyanlou字串,不允許重複

  •  查詢檔案並輸出到output檔案           
$ sudo grep -rR "shiyanlou" /etc | cut -d ":" -f 1 | tee /home/shiyanlou/output

        解析:   grep  找到含有執行字串的檔案

                    grep -rn "hello,world!" *

                     * : 表示當前目錄所有檔案,也可以是某個檔名

                    -r :是遞迴查詢

                    -n :是顯示行號

                    -R :查詢所有檔案包含子目錄

                    -i :忽略大小寫

                cut字串擷取命令

-f  列號      #提取第幾列(分隔符預設為\t)

-d  分隔符  #指定分隔符

                 cut -d  ":"  -f 1,3 /etc/passwd  #以:分割擷取檔案passwd檔案的第1列和第三列

                tee  讀取標準輸入的資料,並將其內容輸出成檔案。

-a或--append  附加到既有檔案的後面,而非覆蓋它.

-i-i或--ignore-interrupts  忽略中斷訊號

  • 去除重複行

命令:

        $ sort ./output | uniq | tee output

        先用sort命令 對文字排序(不相鄰的重複行經過排序之後變成相鄰的),uniq 命令可以直接去除相鄰的重複行 然後輸出文字.

        uniq 命令引數說去除重複行明:

[[email protected] ~]$ uniq --help
                用法:uniq [選項]... [檔案]
                從輸入檔案或者標準輸入中篩選相鄰的匹配行並寫入到輸出檔案或標準輸出。
                不附加任何選項時匹配行將在首次出現處被合併。
                長選項必須使用的引數對於短選項時也是必需使用的。
                -c, --count              //在每行前加上表示相應行目出現次數的字首編號
                -d, --repeated          //只輸出重複的行
                -D, --all-repeated      //只輸出重複的行,不過有幾行輸出幾行
                -f, --skip-fields=N     //-f 忽略的段數,-f 1 忽略第一段
                -i, --ignore-case       //不區分大小寫
                -s, --skip-chars=N      //根-f有點像,不過-s是忽略,後面多少個字元 -s 5就忽略後面5個字元
                -u, --unique            //去除重複的後,全部顯示出來,根mysql的distinct功能上有點像
                -z, --zero-terminated   end lines with 0 byte, not newline
                -w, --check-chars=N      //對每行第N 個字元以後的內容不作對照
                --help              //顯示此幫助資訊並退出

                --version              //顯示版本資訊並退出

文章引用:

    

相關推薦

linux 查詢指定資料包含某個字元所有檔案,輸出檔案

記錄實驗樓的"查詢指定檔案"比賽目標        將 /etc 目錄下所有內容中包含 shiyanlou 字串的檔案的完整路徑都寫入 /home/shiyanlou/output 檔案中        /home/shiyanlou/output 檔案中每一行包含一個檔案,

matlab查詢指定資料檔案(附漢字和標點符號讀取方法)

fidrrt = fopen('F:\lyn.txt'); while 1 tline = fgetl(fidrrt); if ~ischar(tline), break, e

查詢指定資料指定字尾名的檔案

描述:找出資料夾“C:\Users\12556\Desktop\all-test-jobs\all-yumh-err\“下字尾名為.txt的所有檔案,每行顯示一個 命令:dir C:\Users\12556\Desktop\all-test-jobs\all-

python查詢指定資料所有檔案按修改時間倒序排列

程式碼如下: import os, glob, time def search_all_files_return_by_time_reversed(path, reverse=True):

linux查詢指定資料/刪除指定資料

使用find可以查詢目錄下的檔案.注意: 如果不想包含本身目錄的話就得使用-mindepth 1(本身目錄的深度是0)-type 是代表的檔案型別 d則是代表資料夾.find . -mindepth 1

獲取指定目錄資料包含檔案)並且拷貝到另一指定資料,刪除指定目錄資料包含檔案

    /**      * 複製整個資料夾內容      *       * @param oldPath      *  

linux 命令替換資料所有檔案指定字串為

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux查詢資料某類檔案的內容

今天有個需求:需要查詢在某個工程下面的所有js檔案和vm檔案中是否包含某個特定的關鍵字$a。 自己最直觀的想法,使用find實現。 find . -name "*.js" -or -name "*.vm" | xargs grep "\b$a\b"

linux刪除指定資料某個檔案除外的其他檔案

# shopt -s extglob # rm -fr !(file1) 如果是多個要排除的,可以這樣: # rm -rf !(file1|file2) 首先科普下shopt -s extglob Bash Shell有個extglob選項,開啟之後Shell可以另外識別出5個模式匹配操作符,能使檔

linux學習】——如何將檔案加入到CentOS指定資料

引言 最近在研究linux的東東,一言不合就裝了四個版本的linux,真的是裝的太簡單,但是從最高階往下,發現其實版本最低的那個才適合我正在學的資料,嗚嗚,寶寶心裡苦。 遇到問題

C++ 獲取指定資料指定字尾名檔案

#include <dirent.h> #include <iostream> #include <regex> #include <string> std::vector<std::string> faceDescriptor

python 獲取指定資料所以檔案

reportPath =資料夾路徑 listdir=以一個list返回資料夾下所以檔案 dirs = os.listdir(reportPath)print(dirs) def __get_report(self): """獲取最新測試報告""" dirs = os.listdir(repo

Java-讀取指定資料檔名

 兩種返回方式 1. 陣列 2.集合 import java.io.File; import java.util.ArrayList; public class Test { /** * 陣列 */ public static String[] getFileNa

Linux command: 統計資料檔案數目

Linux下有三個命令:ls、grep、wc。通過這三個命令的組合可以統計目錄下檔案及資料夾的個數。 統計當前目錄下檔案的個數(不包括目   1   $ ls -l | grep "^-" | wc -l

Linux 檢視某資料檔案數量

轉至:www.xitongzhijia.net/xtjc/20150504/47340.html LInux  find指令的使用:   find命令檢視(推薦):   所有子目錄的數量:   [[email protected] ~]# find pma -type d

C#遍歷得到指定資料所有檔案

string path = Application.StartupPath + "\\data\\採集資料\\"; DirectoryInfo root = new DirectoryInfo(path); foreach (FileInfo f in root.GetFiles())//遍歷資料夾

Spring定時任務註解實現定時清空指定資料檔案

@EnableScheduling和@Scheduled(cron = "0 0 4 * * ?"),通過註解方式實現定時任務: 1 import org.slf4j.Logger; 2 import org.slf4j.LoggerFactory; 3 import org.springfra

Java遞迴刪除指定資料所有檔案

Java遞迴刪除指定資料夾下所有檔案 工具類封裝 public class FileUtils{ public static boolean delAllFile(String path) { return delAllFile(new File(path)

刪除指定資料所有東西

package com.shi.zxing.QZxing.util; import java.io.File; /** * 刪除資料夾下所有的檔案 * @author SHF * @version 建立時間:2018年10月29日 下午2:38:41 */ publi

C#中遍歷指定資料檔案或子檔案

今天用到查詢給定路徑下的所有檔案,記錄一下: 1、引入IO名稱空間 using System.IO; 2、用到的主要方法: DirectoryInfo folder = new DirectoryInfo(filePath); DirectoryInfo.GetFiles():獲取目錄中所有