Linux查詢檔案夾中檔案的字串以及替換

2021-09-12 01:53:10 字數 1507 閱讀 1257

1、grep是linux下搜尋檔案文字的工具,能使用正規表示式搜尋文字,並把匹配的文字所在位置列印下來。

2、使用格式:grep [option]… pattern [file]…

[option]常用引數:

-n或 --line-number 列印所在行數編號

-r 或 --recursive 等同於 --directories=recurse,表示指定要查詢的是目錄而非檔案時

-l 或 --files-without-match 列印內容不符合指定的範本樣式的檔名稱

-l 或 --files-with-matches 只列印存在符合指定的範本樣式內容的檔名稱

-w 或 --word-regexp 只顯示全字符合的列

-x 或 --line-regexp 只顯示全列符合的列

-a 或 --text 不要忽略二進位制檔案,等同於–binary-files=text

-i 忽略二進位制檔案,等同於–binary-files=without-match

-i 或 --ignore-case 忽略字元大小寫

更多引數詳見–help。

3、pattern正規表示式常見引數:

\ : 將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 『n』 匹配字元 『n』。』\n』 匹配換行符。序列 『\』 匹配 「」,而 『(』 則匹配 「(」。

. : 匹配除換行符 \n 之外的任何單字元。要匹配 . ,請使用 . 。

? : 匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符。要匹配 ? 字元,請使用 ?。

^ : 匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 ^。

| : 指明兩項之間的乙個選擇。要匹配 |,請使用 |。

<:從匹配正則表達 式的行開始。

>:到匹配正規表示式的行結束。

4、舉例:

grep -i 『hello world』 hello.c hello.h :顯示在hello.c、hello.**件中查詢到字串的行,並忽略大小寫

grep 『hello』 d* :顯示在d開頭的檔案中查詢到字串的行

grep -rl 『hello』 /home/hello/ :顯示在對應資料夾下的檔案中查詢到字串的檔案,並列印出檔案名字

1、使用sed命令可以進行字串的批量替換。

2、使用格式:sed [option]… [input-file]…

[option]常用引數

-i 直接在檔案中替換,不列印到終端

3、可以指定替換檔案

sed -i 『s/hello/hello/g』 hello.c :將hello.c檔案中的hello替換成hello

4、可以與grep連用在grep查詢到的檔案內進行替換

sed -i 『s/hello/hello/g』grep 'hello' -rl /home/hello/:將grep返回的檔案中的hello替換成hello,其中grep前的符號為`而非』

Linux 下查詢檔案或資料夾

有些在我看來比較實用的命令,在這裡記一下,避免每次都搜尋一輪。1 查詢檔案和資料夾 find name mongo 從當前路徑開始,向子目錄查詢名字含有 mongo 的檔案和資料夾 2 僅查詢檔案夾 find name mongo type d 3 查詢檔案內容中含有指定內容的檔案或資料夾 find...

Linux Ubuntu 查詢檔案和資料夾大小

使用命令列工具du,ls查詢檔案和資料夾大小 du命令 du命令可以檢視資料夾的結構及其大小,可以使用 d引數和 b引數來簡單的查詢檔案 資料夾 其中 d n代表資料夾的查詢深度,n為向內查詢幾層,一般使用1即可,b k m g代表顯示的單位為mb,gb等 du sh 1.3g 直接輸出當前的大小s...

linux find 命令查詢檔案和資料夾

查詢目錄 find 查詢範圍 name 查詢關鍵字 type d 查詢檔案 find 查詢範圍 name 查詢關鍵字 print 詳解 find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案...