當前位置:首頁 » 操作系統 » linux匹配刪除

linux匹配刪除

發布時間: 2022-12-30 00:36:37

linux 正則匹配 刪除文件中不包含某字元串的行

grep bbb file > file1

cat file1 > file

whudwl 的更好

㈡ Linux終端下的退格和刪除鍵^H ^ ^[[3~ 雜記

有時候為了學好Linux, 得要懂一些Unix考古學. 比如為什麼Emacs的默認快捷鍵那麼難按, 又比如煩人的換行符 和 , 以及這次的^H ^? ^[[3~.

目前我看到講考古學講得最好的書是《UNIX&LINUX大學教程》("Harley Hahn's Guide to Unix and Linux", 作者:Harley Hahn). 書中第七章 Unix鍵盤使用, 講述了^H ^? 的來龍去脈.

wikipedia 上列舉了各ASCII碼的二進制十六進制終端輸入C語言 表示方法.

簡單來說,

Linux上erase信號表示刪除最後鍵入的字元. 這個信號即可以綁定到終端的^H上, 也可以綁定到終端的^?上. (甚至隨便你喜歡的哪個鍵. ) 至於具體綁定在終端哪個鍵值上,終端上輸入 stty -a 可以看到.

在終端裡面輸入 showkey -a 然後輸入按鍵, 可以得到這個按鍵的ASCII碼和二進制,十六進製表示.輸入CTRL+D 結束.

可以自行實驗一下自己鍵盤上的Backspace、CTRL+Backspace、CTRL+H、Delete 都是什麼值.

使用遠程登錄工具的一個常見問題就是遠程系統上erase信號和本地鍵盤Backspace鍵不匹配, 本來是想刪除前一個字元, 屏幕上卻輸入了^H.

這篇文章 講述了各終端模擬器修改Backspace鍵的鍵碼方法.

更改一下終端的erase信號綁定值也是一種方法:
stty erase ^H 或者
stty erase ^?

遠程登錄工具MobaXterm 9.1 默認也是把erase信號綁定到了^H, Backspace默認也發出^H鍵. CTRL+H鍵也發送^H, 可以刪除前面的字元.

但是如果在終端里使用Emacs, 就會發現它的幫助前綴鍵 C-h 和 ^H 沖突, 按CTRL+H 是刪除字元. 這個時候只能按<F1>鍵來代替C-h

解決辦法或者在Emacs的配置文件里重新鍵綁定, 或者stty erase ^? 然後把Backspace鍵改為 ^? ( MobaXterm里就是取消勾選Backspace的^H設置, Backspace鍵就會變為^?. )

Xshell剛爆出有後門漏洞, 需要升級到最新版.

Xshell 5默認erase綁定到 ^?, 但是它有個有趣的設置. 如果鍵盤功能鍵類型設置為默認狀態, Backspace鍵序列選^?, 或者^H, 都可以起刪除前面字元的作用. CRTL+H鍵也能刪除字元. 看起來它是自動調整了. 而且在它裡面使用Emacs, CRTL+H鍵又恢復成了幫助前綴鍵, 而不是刪除鍵.

㈢ Linux如何刪除替換變數值Linux刪除替換變數值的方法

在Linux系統中,對變數進行賦值後需要發現有些問題,需要對變數值進行刪除或替換,本文將針對Linux變數值的替換和刪除做個詳細介紹,希望對你有所幫助。一起去看看吧!

1、變數內容的刪除

[root@bogon ~]# echo ${PATH} #呼叫出PATH變數的值

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin

[root@bogon ~]# echo ${PATH#/*bin:} #看見那個“#”符號,表示從變數“PATH”值的左邊開始向右邊刪除能匹配到“*bin:”的位置,僅刪除能匹配到最短的那個,所以輸出內容如下,“/usr/local/sbin:”被刪除了

/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin

[root@bogon ~]# echo ${PATH#*local/bin:}

/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin

[root@bogon ~]# echo ${PATH##/*bin:} #兩個“#”表示刪除能匹配到最長的那個,所以“/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:”全部被刪除

/root/bin

[root@bogon ~]# echo ${PATH%:/*bin} #把上邊的“#”號換成“%”看看,表示從變數“PATH”值的右邊開始向左邊刪除能匹配到“*bin”的位置,僅刪除能匹配到最短的那個,所以“:/root/bin”被刪除

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin

[root@bogon ~]# echo ${PATH%%:/*bin} #兩個“%”與兩個“#”類似的道理

/usr/local/sbin

2、變數內容的替換

[root@bogon ~]# echo ${PATH/sbin/SBIN/} #用“SBIN”替換“sbin”,但只替換第一次匹配到的

/usr/local/SBIN/:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin

[root@bogon ~]# echo ${PATH//sbin/SBIN/} #用“SBIN”替換“sbin”,全局替換

/usr/local/SBIN/:/usr/local/bin:/SBIN/:/bin:/usr/SBIN/:/usr/bin:/usr/local/mysql/bin:/root/bin

變數內容刪除與替換小結:

變數書寫方式功能描述

${變數名稱#匹配字元}若變數內容有被匹配到,剛從變數內容的左邊開刪除,但刪除匹配最短的

${變數名稱##匹配字元}若變數內容有被匹配到,剛從變數內容的左邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式

${變數名稱%匹配字元}若變數內容有被匹配到,剛從變數內容的右邊開刪除,但刪除匹配最短的

${變數名稱%%匹配字元}若變數內容有被匹配到,剛從變數內容的右邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式

${變數稱/舊字元串/新字元串}從變數內容的左邊開始匹配,用新字元串替換舊字元串,僅替換第一個匹配到的字元串

${變數稱//舊字元串/新字元串}從變數內容的左邊開始匹配,用新字元串替換舊字元串,全部替換匹配到的字元串

以上內容就是今天小編為大家帶來的關於Linux刪除和替換變數值的方法了,本文只介紹了刪除和替換這兩種方法,變數的修改還有取代等方式,這里就不一一介紹了。希望能夠幫助到大家!

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

sed編輯器是一行一行的處理文件,正在處理的內容存放在模式空間(緩沖區)中,處理完畢後按照選項的規定進行輸出或文件的修改。

sed主要用來自動編輯一個或多個文件;簡化文件的反復操作,用於非交互編譯文件。

可以使用一個簡單的數字,或是一個行號范圍

注意:p的動作是:列印匹配行。

1. 原始文件:

2. sed的默認動作
(1)sed的默認動作是列印文件中的所有行。

3. 列印特定行
(1)因為sed命令默認列印文件中所有行。所以第三行會被列印兩遍。那如何只列印第三行呢?使用【-n】命令,只列印匹配的行。

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

(3)列印[n,m]行

(4)列印包含模式的行

(5)列印包含模式和指定行號之間的行

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

(7) {}執行多個命令(command),使用;隔開。=是顯示文件行的行號。p是列印匹配行

(8)!取反操作

(9)q命令:第一個模式匹配完成後退出或立即退出,使用該命令列印前5行

(1)使用[]進行正則匹配

(2)其他的正則表達式

(1)列印出以#開頭的行,然後用!進行反選,則表示過濾掉以#開頭的行,不會過濾掉空格。

(2)匹配以#開頭的行,進行取反,則列印出非#開頭的行,然後其結果在對空格開頭的行進行取反。即 過濾掉以#開頭的行和以空格開頭的行。 {}表示在定位行執行的命令組。

(3)sed支持對單個文件實現不同的操作,每個操作用-e參數。定位到執行的行後,使用d命令,直接刪除匹配到的行。

需要注意的是,對源文件的添加要使用【-i】參數。

s:使用替換模式替換相應模式

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

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

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

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

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

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

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

(8)當添加多行時,使用 來轉義

(9)@代表的是【地址定界符】,一般由三個組成,定界符可以是/,$,#等特殊字元,此命令表示,匹配特定字元的行進行替換。

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

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

(1)刪除以非#號開頭的行,即顯示以#號開頭的行。

(2)刪除第一行

(3)刪除最後一行

(4)刪除指定的行區間

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

本文參考:
sed命令詳解

㈤ Linux命令之sed-刪除匹配行

1. sed -i '/preSql/d' a.txt

---刪除匹配到 preSql的行

2. sed -i '1d' a.txt

---刪除第一行

3. sed -i '3~2d' a.txt

---從第三行開始,每隔一行刪除

4. sed -i '4,8d' a.txt

---刪除從第4行到第8行

5. sed -i '$d'  a.txt

---刪除最後一行

6. sed '/^$/d' a.txt

---刪除所有空行

7. sed -i  '/Website Design/,$d' a.txt

---從匹配行到末尾行

8. sed -i  '/Storage/,+2d' a.txt

--- 刪除匹配行和之後兩行

㈥ Linux:sed刪除所有匹配結果中的第一個

1、刪從0行到happy行
sed -i '0,/happy/d' test.txt
2、刪從0行到happy行裡面的happy行,相當於刪除第一個happy行
sed -i '0,/happy/{/happy/d}' test.txt
3、{}組合命令:
一組命令作為一個塊被應用
函數命令之間用";"分割
組合可以嵌套

㈦ Linux下刪除帶有特殊符號文件名的文件

不小心在目錄下建立了很多文件名中帶有引號的文件,不好匹配刪除。
查了查文檔,在文件名再加了個引號,成功匹配,順利刪除。

㈧ linux下如何刪除文本文件中的匹配行及前後幾行

sed'/Macaddress/,+3d;:go;1!{P;$!N;D};N;bgo'file

㈨ linux怎麼刪除當前目錄下的所有文件

1.首先,安裝SHH遠程軟體,連接到linux伺服器,然後使用SSH登錄到linux伺服器;

㈩ linux中怎樣查找文件並刪除

以查找和刪除mp3為擴展的文件為例:
find / -name "*.mp3" |xargs rm -rf
會刪除所有以mp3為擴展的文件。操作的時候先:
find / -name "*.mp3"
會列印出匹配的文件,如果覺得正是想刪除這些文件,再執行:
find / -name "*.mp3" |xargs rm -rf

熱點內容
長虹安卓電視關閉網路在哪裡 發布:2025-05-10 14:37:04 瀏覽:141
ubuntuhttp伺服器的搭建 發布:2025-05-10 14:33:06 瀏覽:37
微信找回密碼申訴要多少時間 發布:2025-05-10 14:14:05 瀏覽:435
大眾寶來速騰選哪個配置 發布:2025-05-10 14:10:53 瀏覽:128
數字機頂盒密碼是多少 發布:2025-05-10 14:10:06 瀏覽:334
取消訪問網路需要密碼 發布:2025-05-10 13:44:20 瀏覽:64
shell編程運行 發布:2025-05-10 13:37:54 瀏覽:640
win7訪問xp共享需要密碼 發布:2025-05-10 13:34:10 瀏覽:344
飯團看書為什麼緩存不了小說 發布:2025-05-10 13:17:03 瀏覽:13
如何配置登錄源地址限制 發布:2025-05-10 13:12:52 瀏覽:591