成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Linux 中使用 fgrep 命令搜索字符串

系統 Linux
在本文中,我們討論了fgrep命令的一些有用示例。初學者可以在日常生活中使用這些示例來提高使用 Linux 工作時的工作效率。

文本搜索是最常執行的操作之一。然而,如果用戶不熟悉正確的工具,這個簡單的任務很快就會變得很耗時。在 Linux 中,有各種文本過濾實用程序,例如 awk、sed、cut等。

但是,在 Linux 中,fgrep 是簡單文本搜索的首選實用程序。在本指南中,我們將討論可在日常生活中使用的 fgrep 命令的一些實踐示例。

Linux 中的 fgrep 命令屬于grep 命令家族。但是,它用于搜索固定字符串模式而不是正則表達式。因此,該命令的名稱是fgrep(Fixed GREP)。

fgrep 命令的語法類似于其他 grep 系列命令:

$ fgrep [選項] 模式 [文件]

首先,讓我們創建一個包含以下內容的純文本文件來使用示例:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ cat linuxmi.txt

在 Linux 中查看文件內容

在這里,我們可以看到文本文件已準備好包含示例內容。現在讓我們在接下來的幾個示例中討論 fgrep 命令的一些常見示例。

1. fgrep 與 grep 和 egrep 命令有何不同?

顧名思義,fgrep 命令用于搜索固定字符串模式。它將模式解釋為固定字符串而不是正則表達式。因此,它以一種節省時間的方式執行搜索操作。

為了理解差異,讓我們在 grep 命令中使用點(.)字符。

這個簡單的正則表達式匹配除行尾之外的任何單個字符:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ grep at. linuxmi.txt

使用 Grep 搜索單個字符

在上面的輸出中,我們可以看到點(.)字符與文本at、atc和att匹配。

現在,讓我們對 fgrep 命令使用相同的模式并觀察結果:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep at. linuxmi.txt

在上面的輸出中,我們可以看到該命令無法找到給定的模式。

發生這種情況是因為 fgrep 命令無法識別正則表達式并嘗試搜索不存在的模式 – “at.”。

2. 如何在文件中搜索字符串

讓我們從基本示例開始,我們將在 linuxmi.txt 文件中搜索字符串 matches:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep matches linuxmi.txt

在文件中搜索字符串

正如我們所看到的,成功在兩個地方匹配成功,并以紅色突出顯示。

3. 如何設置匹配模式的 Grep 輸出顏色

在前面的示例中,我們看到,默認情況下,匹配的模式以紅色突出顯示。但是,我們可以通過為 GREP_COLOR 環境變量分配不同的值來改變這種行為。

讓我們將值32分配給GREP_COLOR環境變量以高亮顯示綠色的匹配模式:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ export GREP_COLOR=32

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep matches linuxmi.txt

為匹配模式設置 Grep 輸出顏色

現在,在轉到下一個示例之前,取消設置 GREP_COLOR 環境變量以啟用默認行為:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ unset GREP_COLOR

4.如何在一個文件中搜索多個模式

有時,我們需要對多個字符串進行模式匹配。在這種情況下,我們可以提供文本文件中的模式而不是命令行參數。

讓我們創建一個文本文件,在單獨的一行中包含多個模式:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ cat kotlin.txt
name
globs

現在,讓我們將此文件與-f多個模式匹配選項一起使用:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep -f kotlin.txt linuxmi.txt

使用 fgrep 搜索多個模式

在上面的輸出中,我們可以看到字符串professionals和website的模式匹配成功。

5.如何限制文件中的匹配數

默認情況下,fgrep 命令會繼續執行模式匹配,直到處理完整個文件。

但是,有時我們需要限制匹配的數量。在這種情況下,我們可以-m在命令中使用該選項:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep -m 1 file linuxmi.txt

在此示例中,fgrep命令在匹配第一個模式后停止文件處理。

6. 查找模式時如何打印文件名

有時,我們只需要找到存在特定模式的文件的名稱。在這種情況下,我們可以使用 fgrep 命令的-l選項:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep -l file linuxmi.txt
linuxmi.txt

在這里,我們可以看到該命令只打印文件名而不是具有匹配模式的行。

7.模式匹配失敗時如何打印文件名

在前面的示例中,我們看到了如何在模式匹配成功時打印文件名。現在,讓我們看看如何以相反的方式執行操作。

讓我們嘗試在文件中找到不存在的模式并觀察結果:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep -L non-existing-word linuxmi.txt
linuxmi.txt

在這個例子中,我們使用了-L當模式匹配不成功時打印文件名的命令選項。

8. 如何忽略錯誤信息

在編寫 shell 腳本時,錯誤處理起著至關重要的作用。但是,在一些非關鍵場景中,我們可以安全地忽略錯誤消息。

在fgrep中,我們可以使用-s 忽略與不存在或不可讀文件相關的錯誤的選項。為了更好地理解這種行為,讓我們嘗試在不存在的文件中搜索模式:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep -s kotlin non-linux.txt

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ echo $? 2 ?
2

在上面的輸出中,我們可以看到該命令沒有在標準錯誤流中顯示任何錯誤。但是,失敗是由非零返回值報告的。

除此之外,我們還可以在文件不可讀時觀察到相同的行為。因此,首先,使用chmod命令修改文件權限:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ chmod 000 linuxmi.txt

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ ls -l linuxmi.txt
---------- 1 linuxmi linuxmi 370 11 20 19:03 linuxmi.txt

現在,嘗試搜索模式并觀察結果:

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ fgrep -s name linuxmi.txt

┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]
└─$ echo $? 2 ?
2

Grep 忽略錯誤信息

責任編輯:趙寧寧 來源: Linux迷
相關推薦

2022-10-25 09:07:28

Linuxxargs命令

2021-11-25 00:04:16

C# 插值字符串

2018-05-16 10:32:06

Linux命令find

2018-06-26 09:15:24

Linux命令history

2022-11-18 10:16:26

Linuxwc 命令

2023-09-14 15:05:33

grep正則表達式

2021-01-13 09:40:26

Linuxexport命令

2021-07-13 07:52:02

Linuxgrep命令

2023-01-31 17:36:22

IPLinux網絡

2019-09-16 19:00:48

Linux變量

2018-04-28 09:12:42

Linux

2021-07-20 10:00:28

Linuxgrep命令

2022-05-25 08:41:48

Linuxfd 命令文件

2022-03-30 09:32:32

BashtestLinux

2009-06-15 16:53:44

Groovy字符串gstring

2018-07-26 09:55:44

Linux命令升級軟件

2022-11-23 08:14:42

bash 腳本test 命令

2018-01-09 09:00:01

Linux命令文件壓縮

2023-01-09 10:29:41

mv命令Linux

2018-10-09 08:30:55

UbuntuLinuxRAR文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色五月激情五月 | 精品国产99| 久久一级| 日韩欧美一级精品久久 | 亚洲国产成人精品女人久久久野战 | 国产视频福利一区 | 久久久国产精品一区 | 亚洲91精品 | 国产1区2区在线观看 | 久久久久久国 | 亚洲一区二区三区在线 | 精品国产一区二区三区久久久四川 | 91久久电影 | 成人超碰在线 | 不卡视频一区二区三区 | 亚洲视频免费在线观看 | 精品国产视频 | 久草视频网站 | 特级生活片 | 亚洲欧美精品国产一级在线 | 亚洲网站在线观看 | 国产精品成av人在线视午夜片 | 久久久123| 一区二区三区国产视频 | 欧美精品网 | 日韩欧美三区 | 国产高清免费 | 在线免费91 | 日本一区二区影视 | 在线看91 | 九九亚洲精品 | 亚洲国产精品99久久久久久久久 | 久久不卡 | 亚洲欧美日韩一区二区 | 精品免费国产视频 | 成人小视频在线 | 成人免费在线观看视频 | 激情网站在线观看 | 夜夜骑天天干 | 国产精品视频999 | 国产精品综合一区二区 |