日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Linux實(shí)現(xiàn)多條件匹配:兩個(gè)文件的高效查詢技巧(兩個(gè)文件多條件匹配linux)

在Linux系統(tǒng)中,文件的匹配查詢是一個(gè)經(jīng)常需要用到的操作。如果只是簡(jiǎn)單地查找某個(gè)文件或某個(gè)目錄下的特定文件,使用一些基本的命令就可以滿足需求。但是當(dāng)需要進(jìn)行高效的多條件匹配時(shí),簡(jiǎn)單的命令可能就不太夠用了。在這種情況下,需要使用一些專門的技巧來(lái)實(shí)現(xiàn)更高效的查詢。

本文將介紹一種實(shí)現(xiàn)多條件匹配的方法,即使用兩個(gè)文件進(jìn)行匹配。這個(gè)方法適用于需要查找滿足多個(gè)條件的文件的情況,比如查找同時(shí)滿足文件名、文件大小和文件類型等多個(gè)條件的文件。

方法概述

這個(gè)方法是通過(guò)比較兩個(gè)文件的內(nèi)容來(lái)實(shí)現(xiàn)的。之一個(gè)文件是一個(gè)列表文件,其中列出了需要匹配的條件,比如文件名、文件大小、文件類型等。第二個(gè)文件是需要進(jìn)行匹配的文件列表,這個(gè)列表包含了所有需要進(jìn)行查詢的文件。程序會(huì)逐一檢查第二個(gè)文件列表中的每個(gè)文件,看它是否滿足之一個(gè)文件列表中列出的所有條件。

如果一個(gè)文件滿足了所有條件,那么它就被認(rèn)為是匹配成功的。程序會(huì)把匹配成功的文件加入到輸出文件列表中。輸出文件列表中列出了所有匹配成功的文件的路徑和文件名。

使用示例

下面是一個(gè)使用示例,假設(shè)我們需要查找滿足以下條件的文件:

– 文件名以“l(fā)og”結(jié)尾

– 文件大小在100KB以上

– 文件類型為普通文件

我們首先需要?jiǎng)?chuàng)建一個(gè)包含這些條件的文件列表文件,比如我們把這個(gè)文件命名為“conditions.txt”。文件內(nèi)容如下:

“`

name=log$

size=+100k

type=file

“`

然后我們需要?jiǎng)?chuàng)建一個(gè)需要進(jìn)行匹配的文件列表文件。比如我們把這個(gè)文件命名為“filelist.txt”。這個(gè)文件包含了所有需要進(jìn)行查詢的文件的路徑和文件名。文件內(nèi)容如下:

“`

/home/user/test/test.log

/home/user/test/test1.log

/home/user/test/test2.jpg

“`

現(xiàn)在我們可以使用下面的命令來(lái)進(jìn)行查詢:

“`

find $(cat filelist.txt) -type f -print0 | xargs -0r grep -ilZf conditions.txt | xargs -0r printf ‘%s\n’

“`

這個(gè)命令的含義是:

– find $(cat filelist.txt) -type f -print0:根據(jù)“filelist.txt”中列出的文件路徑和文件名,查找所有類型為普通文件的文件,并將它們的路徑和文件名輸出到標(biāo)準(zhǔn)輸出。

– grep -ilZf conditions.txt:使用“conditions.txt”中列出的條件來(lái)匹配通過(guò)之一步查找到的文件。可以把這個(gè)步驟看作是“篩選”操作,只有滿足條件的文件才會(huì)被保留下來(lái)。

– xargs -0r printf ‘%s\n’:將通過(guò)第二步“篩選”得到的所有文件的路徑和文件名輸出到標(biāo)準(zhǔn)輸出。

通過(guò)這個(gè)命令,我們可以得到所有滿足條件的文件的路徑和文件名。

方法優(yōu)勢(shì)

這個(gè)方法相對(duì)于其他方法的優(yōu)勢(shì)在于它可以高效地實(shí)現(xiàn)多條件匹配。使用這個(gè)方法可以避免反復(fù)地使用一些簡(jiǎn)單的命令進(jìn)行搜索和篩選,從而提高查詢的效率。這個(gè)方法的另一個(gè)優(yōu)勢(shì)在于它可以輕松地組合不同的條件,滿足不同的查詢需求。

在Linux系統(tǒng)中,文件的匹配查詢是一個(gè)常見(jiàn)的操作。通過(guò)使用兩個(gè)文件來(lái)實(shí)現(xiàn)多條件匹配,可以高效地實(shí)現(xiàn)復(fù)雜的查詢需求。這個(gè)方法適用于需要查找滿足多個(gè)條件的文件的情況,比如查找同時(shí)滿足文件名、文件大小和文件類型等多個(gè)條件的文件。對(duì)于需要進(jìn)行高效查詢的情況,這個(gè)方法是非常有用的。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220

Linux三劍客(sed)-編輯匹配到的文本

sed編輯器是一行一行的處理文件,正在處理的內(nèi)容存放在模式空間(緩沖區(qū))中,處理完畢后按照選項(xiàng)的規(guī)定進(jìn)行輸出或文件的修改。

sed主要用來(lái)自動(dòng)編輯一個(gè)或多個(gè)文件;簡(jiǎn)化歲斗文件的反復(fù)操作,用于非交互編譯文件。

可以使用一個(gè)簡(jiǎn)單的數(shù)字,或是一個(gè)行號(hào)范圍

注意:p的動(dòng)作是:打印匹配行。

1. 原始文件:

2. sed的默認(rèn)動(dòng)作

(1)sed的默認(rèn)動(dòng)作是打印文件中的所有行。

3. 打印特定行

(1)因?yàn)閟ed命令默認(rèn)打印文件中所有行。所以第三行會(huì)被打印兩遍。那如何只打印第三行呢?使用【-n】命令,只打印匹配的行。

(2)使用【-n】命令,只打印匹配到的行

(3)打印行

(4)打印包含模式的行

(5)打印包含模式和指定行號(hào)之間的行

(6)包含模式和包含模式之間的行

(7)

{}執(zhí)行多個(gè)命令(command),使用;隔開(kāi)。=是顯示文件行的行號(hào)。p是打印匹配行

(8)!取反操作

(9)q命令:之一個(gè)模式匹配完成后退出或立即退出,使用該命令打印前5行

(1)使用進(jìn)行正則匹配

(2)其他的正則表達(dá)式

(1)打印出以#開(kāi)頭的行,然后用!進(jìn)行反選,則表示過(guò)濾掉以#開(kāi)頭的行,不會(huì)過(guò)濾掉空格。

(2)匹配以#開(kāi)頭的行,進(jìn)行取反,則打印出非#開(kāi)頭的行,然后其結(jié)果在對(duì)空格開(kāi)頭的行進(jìn)行取反。即

過(guò)濾掉以#開(kāi)頭的行和以空格開(kāi)頭的行。

{}表示在定位行執(zhí)行的命令組。

(3)sed支持對(duì)單個(gè)文件實(shí)現(xiàn)不同的操作,每個(gè)操作用-e參數(shù)。定位到執(zhí)行的行后,使用d命令,直接刪除匹配到的行。

需要注意的是,對(duì)源文件的添加要使用【-i】參數(shù)。

s:使用替換模式替換相應(yīng)模式

(1)在匹配行前面替換字符,使用【s】命令。

(2)在所有行開(kāi)頭替換元素【s】

(3)在所有行的末尾替換元素

(4)指定行,進(jìn)行替換操作

(5)【&】符號(hào)代表的是匹配到的字符。在匹配到字符后,可以使用&代替。

(6)在匹配到行前面添加一行,使用【i】的命令

(7)在匹配行的后面添加一行,使用【a】命令

(8)當(dāng)添加多行時(shí),使用\n來(lái)轉(zhuǎn)義

(9)@代表的是【地址定界符】,一般由三個(gè)組成,坦雀散定讓氏界符可以是/,$,#等特殊字符,此命令表示,匹配特定字符的行進(jìn)行替換。

(10)使用命令【g】修改全文中出現(xiàn)的匹配字符。

(11)若后面接數(shù)字之后在接g,表示匹配的行中,第幾次出現(xiàn)。就替換,2g表示替換行中第二次出現(xiàn)。

(1)刪除以非#號(hào)開(kāi)頭的行,即顯示以#號(hào)開(kāi)頭的行。

(2)刪除之一行

(3)刪除最后一行

(4)刪除指定的行區(qū)間

(5)刪除包含特定單詞的行

本文參考:

Linux下文件搜索、查找、查看命令

1、最強(qiáng)大的搜索命令:find 查找各種文件的命令 

2、在文件資料中查找文件:locate  

3、搜索命令所在的目錄及別名信息:which 

4、搜索命令所在的目錄及幫助文檔路徑:whereis

5、在文件中搜尋

字符串

匹配的行并輸出:grep

6、分頁(yè)顯示一個(gè)文件或任何輸出結(jié)果:more

7、分頁(yè)顯示一個(gè)文件并且可以回頭:less

8、指定顯示前多少行文件內(nèi)容:head

9、指定顯示文件后多少行內(nèi)容:tail

10、查看一個(gè)文件:cat

11、查看文件內(nèi)容多少字符多少行多少字節(jié):wc

12、排序文件內(nèi)容:sort

一、根據(jù) 文件或目錄名稱 搜索

find 【搜索目錄】【-name或者-iname】【搜索字符】:-name和-iname的區(qū)別一個(gè)區(qū)分大小寫,一個(gè)不區(qū)分大小寫

eg:在/etc 目錄下搜索名字為init的文件或目錄

①、find /etc -name init (精準(zhǔn)搜索,名字必須為 init 才能搜索的到)

②、find /etc -iname init (精準(zhǔn)搜索,名字必須為 init或者有字母大寫也能搜索的到)

③、find /etc -name *init (模糊搜索,以 init 結(jié)尾的文件或目錄名)

④、find /etc -name init??? (模糊搜索,? 表示單個(gè)字符,即搜索到 init___)

二、根據(jù) 文件大小 搜索

eg:在

根目錄

下查找大于 100M 的文件

find / -size +202300

這里 +n 表示大于,-n 表示小于,n 表示等于

1 數(shù)據(jù)塊 == 512 字節(jié) 0.5KB,也就是1KB等于2數(shù)據(jù)塊

100MB ==KB202300數(shù)據(jù)塊

三、根據(jù) 所有者和所屬組 搜索

①、在home目錄下查詢所屬組為 root 的文件

find /home -group root

②、在home目錄下查詢所有者為 root 的文件

find /home -user root

四、根據(jù) 時(shí)間屬性 搜索

find 【路徑】【選項(xiàng)】【時(shí)間】

選項(xiàng)有下面三種:-amin 訪問(wèn)時(shí)間

cmin 文件屬性被更改

mmin 文件內(nèi)容被修改

時(shí)間:螞喚+n,-n,n分別表示超過(guò)n分鐘,n分鐘以內(nèi)和n分鐘

eg:在 /etc 目錄下查找5 分鐘內(nèi)被修改過(guò)屬性的文件和目錄

find /etc -cmin -5

五、根據(jù)

文件類型

或i節(jié)點(diǎn) 搜索

 -type 根據(jù)文件類型查找:

 f表示文件,d表示目錄,l表示軟鏈接

eg:查找 /home 目錄下文件類型是目錄的

find /home -type d

  -inum 根據(jù)i節(jié)點(diǎn)查找

eg:查找 /tmp 目錄下i節(jié)點(diǎn)為400342的文件或目錄

  find /tmp -inum

六、組轎爛合條件 搜索  

  這里有兩個(gè)參數(shù):

 ?、?、-a 表示兩個(gè)條件同時(shí)滿足(and)

 ?、?、-o 表示兩個(gè)條件滿足任意一個(gè)即可(or)

  范例:查找/etc目錄下大悶帆凱于80MB同時(shí)小于100MB的文件

  find /etc -size +a -size

語(yǔ)法:locate【文件名】 -i 不區(qū)分大小寫

注意:這里和 find 命令是有區(qū)別的,find是全盤檢索,而locate 是在文件資料庫(kù)中進(jìn)行搜索。所以locate命令的執(zhí)行要比f(wàn)ind命令執(zhí)行速度快很多。但是這里有個(gè)問(wèn)題,文件資料庫(kù)是需要不斷更新的。我們新創(chuàng)建的文件如果不更新 文件資料庫(kù),使用 locate 是查找不到的。

updatedb 手動(dòng)更新資料庫(kù),但是對(duì)于/tmp目錄下的新建文件,是更新不到文件資料庫(kù)的,因?yàn)?tmp目錄不屬于文件資料庫(kù)的收錄范圍。

eg:locate hcf

功能描述:搜索命令所在的目錄及別名信息

 語(yǔ)法:which【命令】

 eg:which ls

功能描述:搜索命令所在的目錄及幫助文檔路徑

 語(yǔ)法:whereis【命令】

 eg:whereis ls

功能描述:在文件中搜尋字符串匹配的行并輸出

 語(yǔ)法:grep -iv 【指定字符串】【文件】

i 不區(qū)分大小寫

v 排除指定字符串

 eg:查找 /root/install.log 文件中包含 mysql 字符串的行,并輸出

grep mysql /root/install.log

本搜索工具,根據(jù)用戶指定的模式,對(duì)目標(biāo)文件逐行進(jìn)行匹配檢查,打印匹配到的行

grep是在文件中搜索匹配的字符串,是在文件中進(jìn)行內(nèi)容搜索,這個(gè)命令后面用到的比較多

描述:

分頁(yè)顯示一個(gè)文件或任何輸出結(jié)果

用于查看純文本文件(較長(zhǎng)的)格式

格式:

more 文件

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動(dòng),卻不能向后移動(dòng),而且 less 在查看之前不會(huì)加載整個(gè)文件。

head

用于顯示指定文件開(kāi)始多少行內(nèi)容

命令參數(shù):

-n 10 顯示前10行

-n -10 正常輸出但不顯示最后的10行

eg:顯示new.txt的前兩行內(nèi)容

head -n 2 new.txt

head -2 new.txt

tail

用于顯示指定文件末尾多少行內(nèi)容

命令參數(shù):

-n 10 顯示后面10行

-f 持續(xù)刷新顯示的內(nèi)容

eg:顯示new.txt的末尾兩行內(nèi)容

tail -n 2 new.txt

tail -2 new.txt

eg:指定從第二行開(kāi)始顯示

tail -n +2 new.txt

描述:一次顯示整個(gè)文件內(nèi)容

cat 命令 用于查看純文本文件(較短)

 cat …

描述:wc 命令默認(rèn)情況下會(huì)打印

換行符

數(shù)、單詞數(shù)和字符數(shù)。

 用法:wc

用法:sort

關(guān)于兩個(gè)文件多條件匹配linux的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技公司主營(yíng):網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、小程序制作、成都軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊(cè)、網(wǎng)頁(yè)、VI設(shè)計(jì),網(wǎng)站、軟件、微信、小程序開(kāi)發(fā)于一體。


當(dāng)前名稱:Linux實(shí)現(xiàn)多條件匹配:兩個(gè)文件的高效查詢技巧(兩個(gè)文件多條件匹配linux)
文章網(wǎng)址:http://www.dlmjj.cn/article/cooiidg.html