導航:首頁 > 程序命令 > linux字元串命令

linux字元串命令

發布時間:2023-07-08 15:07:07

linux||正則表達式及grep命令

以下內容首發自公眾號「小汪Waud」。

本期介紹在Linux環境下的正則表達式及grep命令。

正則表達式(Regular Expression)是對字元串操作的一種邏輯公式,就是用事先定義好的一些特定字元及這些字元的特定組合,組成一個「規則字元串」,這個字元串用來表達對字元串的一種過濾邏輯。

正則表達式基本上是一種表示法,只要程序支持這種表示法,該程序就可以用來作為正則表達式的字元串處理之用。如vi、grep、awk、sed等程序支持正則表達式,所以可以使用正則表達式的特殊字元來進行字元串的處理。但例如cp、ls等命令並不支持正則表達式,所以只能用自己的通配符。

正則表達式依照 不同的嚴謹度 分為:基礎正則表達式和擴展正則表達式。

注意!

grep是一種強大的文本搜索工具,可以使用 正則表達式匹配模式 查找文件里符合條件的字元串,並列印出來。

有點類似於WORD里的查找功能。

grep支持三種正則表達式語法:Basic、Extended和perl兼容。 如果沒有提供正則表達式類型,grep將搜索模式解釋為基本的正則表達式。要將模式解釋為擴展正則表達式,請使用-E。

查看grep的幫助文檔,如下

基本用法

grep [OPTION]... PATTERN [FILE]...

高級用法

grep [-A] [-B] [--color=auto] "查找字元" [模式] [文件]

常用參數

首先通過cat命令查看samples.txt的內容,如下圖

如果想檢索以K為行首的行,通過以下命令即可得到

如果想檢索以Z為行尾的行,通過以下命令即可得到

如果想檢索三個字元其中前面為K,後面為D中間字元,為任意字元,通過以下命令即可得到

參考資料

https://www.runoob.com/linux/linux-comm-grep.html

https://www.bilibili.com/video/BV1Yy4y117SX?p=12

⑵ linux命令grep

grep搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。

-n 列印行號

    grep -n ".*" h.txt        所有列印行號

    grep -n "root" h.txt    匹配的內容顯示行號

-v 不包括

-E  表示過濾 多個參數

    grep -Ev "sshd|network|crond|sysstat|" 

-o:僅列印你需要的東西,默認列印正行

    grep -o "hello" h.txt

-i:忽略大小寫

    grep -i "hello" h.txt

-c: 用於統計文中出現的次數

--color=auto 過濾欄位添加顏色

\b:作為邊界符,邊界只包含特定字元的行

grep "\boldboy\b" /etc/passwd -->只過濾包含oldboy的行

從多個文件中查找關鍵詞

grep "omc" /etc/passwd /etc/shadow

數據去重:cat log | sort | uniq

⑶ Linux下Grep命令的詳細使用方法

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常強大,用於搜索文本文件.如果想要在幾個文本文件中查找一字元串,可以使用『grep』命令。『grep』在文本中搜索指定的字元串。
假設您正在『/usr/src/linux/Documentation』目錄下搜索帶字元串『magic』的文件:

$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?

其中文件『sysrp.txt』包含該字元串,討論的是 SysRQ 的功能。

默認情況下,『grep』只搜索當前目錄。如果此目錄下有許多子目錄,『grep』會以如下形式列出:

grep: sound: Is a directory

這可能會使『grep』的輸出難於閱讀。這里有兩種解決的辦法:

明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
當然,如果預料到有許多輸出,您可以通過 管道 將其轉到『less』上閱讀:

$ grep magic /usr/指汪src/linux/Documentation/* | less

這樣,您就可以更方便地閱讀。

有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,『grep』會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然後再試。

下面是一些有意思的命令行參數:

grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字元串的一部分(如匹配『magic』,而不是『magical』),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
這里還有些用於搜索的特殊符號:

\< 和 \> 分別標注單詞的開始與結尾。
例如:
grep man * 會匹配 『Batman』、『manic』、『man』等,
grep '\grep '\' 只匹配『man』,而不是『Batman』或『manic』等其他的字元串。源攜
'^':指匹配的字元串在行首,
'$':指匹配的字元串在行尾,
如果您不習慣命令行參數,可以試試圖形界雹逗伏面的『grep』,如 reXgrep 。這個軟體提供 AND、OR、NOT 等語法,還有漂亮的按鈕 :-) 。如果您只是需要更清楚的輸出,不妨試試 fungrep 。

⑷ Linux命令之sed-替換字元串

1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json

---指定文件替換,將文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;

2. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`

---批量文件替換,遞歸查找含CANCEL_TIME的文件,將所有文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;

3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname

---帶/的字元串替換,將/tmp/ditagent/TF_B_PAYLOG_D.csv替換成/vdata/datapre/281/'"$filename"'

4. sed -i 's/^/beginstring&/g' *.txt

---在所有行首添加字元串;

5.  sed -i 's/$/&endstring/g' *.txt

---在所有行末添加字元串

6. sed -i '2s/原字元串/替換字元串/g' *.txt

---替換第2行

7. sed -i '$s/原字元串/替換字元串/g' *.txt

---替換最後一行

8. sed -i  '2,5s/原字元串/替換字元串/g' *.txt

---替換2到5行

9. sed -i  '2,$s/原字元串/替換字元串/g' *.txt

---替換2到最後一行

10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 > testutf8.dat

---把test.dat中的歐元符號替換成豎線,再將文件gbk格式轉成utf8

-i選項是直接在文件中替換,不在終端輸出;

-r選項是所給的path中的目錄遞歸查找;

-l選項是輸出所有匹配到oldstring的文件;

s/表示替換

/g表示全局替換

⑸ Linux使用sed命令添加字元串方法教程

通常在Linux中添加字元串可以用命令實現,有很多種方式,有一種就是在文本的首尾行添加字元串。那麼具體怎麼使用呢?本文就來介紹一下Linux使用sed命令添加字元串的方法。

用sed命令在行首或行尾添加字元的命令有以下幾種:

假設處理的文本為test.file

在每行的頭添加字元,比如“HEAD”,命令如下:

sed ‘s/^/HEAD&/g’ test.file

在每行的行尾添加字元,比如“TAIL”,命令如下:

sed ‘s/$/&TAIL/g’ test.file

4.也可以把兩條命令和在一起,在test.file的每一行的行頭和行尾分別添加字元“HEAD”、“TAIL”,命令:sed ‘/。/{s/^/HEAD&/;s/$/&TAIL/}’ test.file

以上其實都還OK,昨天花太多時間,主要因為被處理的文件是用mysql從資料庫提取的結果導出來的,別人給我之後我就直接處理,太腦殘了= -我一直有點懷疑之所以結果不對,有可能是windows和linux換行的問題,可是因為對sed不熟,就一直在搞sed。

眾所周知(= -),window和linux的回車換行之雲雲,如果你知道了,跳過這一段,不知道,讀一下唄:

Unix系統里,每行結尾只有“《換行》”,即“ ”;Windows系統裡面,每行結尾是“《換行》《回 車》”,即“ ”。一個直接後果是,Unix系統下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在 Unix下打開的話,在每行的結尾可能會多出一個^M符號。

好了,所以我的問題就出在被處理的文件的每行末尾都有^M符號,而這通常是看不出來的。可以用“cat -A test.file”命令查看。因此當我想在行尾添加字元的時候,它總是添加在行首且會覆蓋掉原來行首的字元。

補充:系統常用維護技巧

1,在 “開始” 菜單中選擇 “控制面板” 選項,打開 “控制面板” 窗口,單擊 “管理工具” 鏈接

2,在打開的 “管理工具” 窗口中雙擊 “事件查看器” 圖標

3, 接著會打開 “事件查看器” 窗口

4,在右側窗格中的樹狀目錄中選擇需要查看的日誌類型,如 “事件查看器本地--Win日誌--系統日誌,在接著在中間的 “系統” 列表中即查看到關於系統的事件日誌

5,雙擊日誌名稱,可以打開 “事件屬性” 對話框,切換到 “常規” 選項卡,可以查看該日誌的常規描述信息

6,切換到 “詳細信息” 選項卡,可以查看該日誌的詳細信息

7,打開 “控制面板” 窗口,單擊 “操作中心” 鏈接,打開 “操作中心” 窗口,展開 “維護” 區域

8,單擊 “查看可靠性歷史記錄” 鏈接,打開 “可靠性監視程序” 主界面,如圖所示, 用戶可以選擇按天或者按周為時間單位來查看系統的穩定性曲線表,如果系統近日沒出過什麼狀況, 那麼按周來查看會比較合適。觀察圖中的曲線可以發現,在某段時間內,系統遇到些問題,可靠性指數曲線呈下降的趨勢,並且在這段時間系統遇到了三次問題和一次警告,在下方的列表中可以查看詳細的問題信息。

相關閱讀:系統故障導致死機怎麼解決

1、病毒原因造成電腦頻繁死機

由於此類原因造成該故障的現象比較常見,當計算機感染病毒後,主要表現在以下幾個方面:

①系統啟動時間延長;

②系統啟動時自動啟動一些不必要的程序;

③無故死機

④屏幕上出現一些亂碼。

其表現形式層出不窮,由於篇幅原因就介紹到此,在此需要一並提出的是,倘若因為病毒損壞了一些系統文件,導致系統工作不穩定,我們可以在安全模式下用系統文件檢查器對系統文件予以修復。

2、由於某些元件熱穩定性不良造成此類故障(具體表現在CPU、電源、內存條、主板)

對此,我們可以讓電腦運行一段時間,待其死機後,再用手觸摸以上各部件,倘若溫度太高則說明該部件可能存在問題,我們可用替換法來診斷。值得注意的是在安裝CPU風扇時最好能塗一些散熱硅脂,但我在某些組裝的電腦上卻是很難見其蹤影,實踐證明,硅脂能降低溫度5—10度左右,特別是P Ⅲ 的電腦上,倘若不塗散熱硅脂,計算機根本就不能正常工作,曾遇到過一次此類現象。該機主要配置如下:磐英815EP主板、PⅢ733CPU、133外頻的128M內存條,當該機組裝完後,頻繁死機,連Windows系統都不能正常安裝,但是更換賽揚533的CPU後,故障排除,懷疑主板或CPU有問題,但更換同型號的主板、CPU後該故障也不能解決。後來由於發現其溫度太高,在CPU上塗了一些散熱硅脂,故障完全解決。實踐證明在賽揚533以上的CPU上必須要塗散熱硅脂,否則極有可能引起死機故障。

3、由於各部件接觸不良導致計算機頻繁死機

此類現象比較常見,特別是在購買一段時間的電腦上。由於各部件大多是靠金手指與主板接觸,經過一段時間後其金手指部位會出現氧化現象,在拔下各卡後會發現金手指部位已經泛黃,此時,我們可用橡皮擦來回擦拭其泛黃處來予以清潔。

4、由於硬體之間不兼容造成電腦頻繁死機

此類現象常見於顯卡與其它部件不兼容或內存條與主板不兼容,例如SIS的顯卡,當然其它設備也有可能發生不兼容現象,對此可以將其它不必要的設備如Modem、音效卡等設備拆下後予以判斷。

5、軟體沖突或損壞引起死機

此類故障,一般都會發生在同一點,對此可將該軟體卸掉來予以解決。

⑹ linux常用命令有哪些

linux常用命令有pwd命令、cd命令、ls命令、cat命令、grep命令、touch命令、cp命令、mv命令、rm命令、rmdir命令等。

linux常用命令:

1、 pwd命令

該命令的英文解釋為print working directory(列印工作目錄)。輸入pwd命令,Linux會輸出當前目錄。

2、 cd命令

cd命令用來改變所在目錄。

cd / 轉到根目錄中

cd ~ 轉到/home/user用戶目錄下

cd /usr 轉到根目錄下的usr目錄中-------------絕對路徑

cd test 轉到當前目錄下的test子目錄中-------相對路徑

3、 ls命令

ls命令用來查看目錄的內容。 選項 含義 -a 列舉目錄中的全部文件,包括皮帆大隱藏文件 -l 列舉目錄中的細節,包括許可權、所有者、組群、大小、創轎褲建日期、文件是否是鏈接等 -f 列舉的文件顯示文件類型 -r 逆向,從後向前地列舉目錄中內容 -R 遞歸,該選項遞歸地列舉當前目錄下所有子目錄內的內容 -s 大小,按文件大小排序 -h 以人類可讀的方式顯示文件的大小,如用K、M、G作單位 ls -l examples.doc 列舉文件examples.doc的所有信息

4、 cat命令

cat命令可以用來合並文件,也可以用來在屏幕上顯示整個文件的內容。

cat snow.txt 該命令顯示文件snow.txt的內容,ctrl+D退出cat。

5、 grep命令

grep命令的最大功能是在一堆文件中查找一個特定的字元串。

grep money test.txt

以上命令在test.txt中查找money這個字元串,grep查找是區分大小寫的。

6 、touch命令

touch命令用來創建新文件,他可以創建一個空白的文件,可以在其中添加文本和數據。

touch newfile 該命令創建一個名為newfile的空白文件。

7 、cp命令

cp命令用來拷貝文件,要復制文件,輸入命令:

cp

cp t.txt Document/t 該命令將把文件t.txt復制到Document目錄下,並命名為t。 選項 含義 -i 互動:如果文件將覆蓋目標中的文件,他會提示確認 -r 遞歸:這個選項會復制整個目錄樹、子目錄以及其他 -v 詳細:顯示文件的復制進度

8 、mv命令

mv命令用來移動文件。 選項 說明 -i 互動:如果選擇的文件會覆蓋目標中的文件,他會提示確認 -f 強制:它會超越互動模式,不提示地移動文件,屬於很危險的選項 -v 詳細:顯示文件的移動進度

mv t.txt Document 把文件t.txt 移動到目錄Document中。

9 、rm命令

rm命令用來刪除文件。 選項 說明 -i 互動:提示確認刪除 -f 強制:代替互動模式,不提示確認刪除 -v 詳細:顯示文件的刪除進度 -r 遞歸:將刪除某個目錄以及其中所有的文件和子目錄

rm t.txt 該命令刪除文件t.txt

10、 rmdir命令

rmdir命令用來刪燃豎除目錄。

⑺ Linux命令行操作之sed

sed命令行格式:sed [options] 'command' file(s)

options常用選項:

-n或--quiet或——silent:僅顯示script處理後的結果;

-e:以選項中的指定的script來處理輸入的文本文件;

-f:以選項中指定的script文件來處理輸入的文本文件;

-r∶sed 的動作支援的是延伸型正規表示法的語法;

-i∶直接修改讀取的檔案內容,而不是由螢幕輸出;

-h或--help:顯示幫助;

-V或--version:顯示版本信息。

Command常用命令:

a:新增,a 的後面可以接字元串,而這些字元串會在新的一行出現(目前的下一行);

c:取代,c 的後面可以接字元串,這些字元串可以取代 n1.n2 之間的行;

d:刪除,d 後面通常不接任何字元串;

i:插入,i 的後面可以接字元串,而這些字元串會在新的一行出現(目前的上一行);

p:列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作;

s:取代,可以直接進行取代的工作,通常與正規表達式搭配使用。

實例說明:

新增操作:a命令

sed '/^bird/a est' file將test追加到 以bird開頭的行後面

刪除操作:d命令

sed '/^$/d' file #刪除空白行;

sed '2d' file #刪除第二行;

sed '2.$d' file #刪除第2行到最後一行;

sed '$d' file #刪除最後一行;

sed '/^bird/'d file #刪除所有開頭是bird的行;

插入操作:i命令

sed -i '3iird ' bird.conf #在bird.conf文件第3行之前插入bird

替換文本中的字元串:s命令

sed 's/bird/birds/' file #將文本中的bird替換成birds;

sed -i 's/ bird / birds /g' file #將file文件中每一行的第一個bird替換為birds;

⑻ Linux字元串搜索命令

1、grep [選項] 字元串 文件名(在文件中匹配符合條件的字缺搭悶符串)
選項:
-i 忽略大小寫
-v 排除指定的字元串
例子:
grep "test" a.txt(在a.txt中搜索匹配test的字元串)
注意:
find命令:在系統中搜符合條件文件名,使伏彎用通用符,通用符是完全匹配
grep命令:在文件中搜枝枝索符合條件字元串,使用正則匹配,正則包含匹配

⑼ Linux中使用grep命令,查詢多個字元串

grep 搜索同時滿足多個關鍵字和滿足任意關鍵字
1、 grep -E "word1|word2|word3" file.txt
滿足任意條件(word1、word2和word3之一)將匹配。

這樣也可以
egrep 'word1|word2|word3' 文件名
grep 'word1/|word2|word3' 文件名

錯誤的:
grep 'word1|word2|word3'

2、 grep word1 file.txt | grep word2 |grep word3
必須同時滿足三個條件(word1、word2和word3)才匹配。
為什麼需要加-E

閱讀全文

與linux字元串命令相關的資料

熱點內容
手機淘寶登錄怎麼加密碼 瀏覽:481
linux快捷方式圖標 瀏覽:33
陽光車險的app叫什麼名字 瀏覽:461
購買單片機的器件時需要給商家啥 瀏覽:534
並行編譯技術的發展 瀏覽:547
阿里雲伺服器安裝管理 瀏覽:548
java手機開發教程 瀏覽:673
我的世界怎麼刪除伺服器數據 瀏覽:669
linux內存子系統 瀏覽:972
加密思維幣 瀏覽:690
魅族訪客文件夾 瀏覽:52
添加的文件夾怎麼找 瀏覽:617
程序員涉黃 瀏覽:700
maven編譯resources下的js 瀏覽:521
ubuntu文件移動命令 瀏覽:229
安卓i怎麼查找蘋果手機 瀏覽:951
雲伺服器宕機概率 瀏覽:232
在線買葯用什麼app知乎 瀏覽:815
ubuntu解壓xz文件 瀏覽:676
宏傑加密時電腦關機 瀏覽:390