溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux中刪除和替換文件中的某一行

發(fā)布時間:2021-05-12 17:31:12 來源:億速云 閱讀:1124 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)怎么在Linux中刪除和替換文件中的某一行,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

  如果有一個abc.txt文件,內(nèi)容是:

aaa
bbb
BATBUSINESSTYPE, INSIDEID--) ONLINE;
INSIDEID--) ONLINE
ccc
ddd
eee
fff

如果要刪除ddd,那么腳本可以這樣寫:

sed -i '/ddd/d' abc.txt

如果刪除的是一個變量的值,假如變量是var,應(yīng)該寫成:

sed -i '/'"$var"'/d' abc.txt

至于grep -v aaa abc.txt這個方法,是無法將修改的結(jié)果寫入abc.txt中去的。

[asp@BJ-CP-7F-106-36 result]$ cat 11371_mobile_20110425.csv
20110425,北京,北京,13661189983
20110425,北京,北京,15810705979
WAPSJBBI_101>
WAPSJBBI_101>spooloff;
[asp@BJ-CP-7F-106-36 result]$ sed -i '/WAPSJBBI_101>/d'11371_mobile_20110425.csv
[asp@BJ-CP-7F-106-36 result]$ cat 11371_mobile_20110425.csv           
20110425,北京,北京,13661189983
20110425,北京,北京,15810705979

從結(jié)果上看怎么就2行都刪了呢?

答案是這樣的:

sed 后面那個/d是刪除的作用,寫成sed '/WAPSJBBI_101>/d' 11371_mobile_20110425.csv其實(shí)就是在文件11371_mobile_20110425.csv里找到跟 “WAPSJBBI_101>”匹配的行,然后刪掉。因?yàn)樵闹泻小癢APSJBBI_101>”的行是2個,因此就2個一口氣都刪除了。

刪除:d命令

$ sed '2d' example-----刪除example文件的第二行。
$ sed '2,$d' example-----刪除example文件的第二行到末尾所有行。
$ sed '$d' example-----刪除example文件的最后一行。
$ sed '/test/'d example-----刪除example文件所有包含test的行。

在看看以前我常寫的sed 's/|/,/g' aaa.txt>bbb.txt 這個的意思就是把a(bǔ)aa.txt文件中所有字符串|都換成,這是怎么表示的呢?S代表字符串,g表示行內(nèi)全面替換。 

替換:s命令

$ sed 's/test/mytest/g' example
-----在整行范圍內(nèi)把test替換為mytest。如果沒有g(shù)標(biāo)記,則只有每行第一個匹配的test被替換成mytest。
$ sed -n 's/^test/mytest/p' example
-----(-n)選項(xiàng)和p標(biāo)志一起使用表示只打印那些發(fā)生替換的行。也就是說,如果某一行開頭的test被替換成mytest,就打印它。
$ sed 's/^192.168.0.1/&localhost/' example
-----&符號表示替換換字符串中被找到的部份。所有以192.168.0.1開頭的行都會被替換成它自已加 localhost,變成192.168.0.1localhost。
$ sed -n 's/able/\1rs/p' example
-----love被標(biāo)記為1,所有l(wèi)oveable會被替換成lovers,而且替換的行會被打印出來。
$ sed 's#10#100#g' example
-----不論什么字符,緊跟著s命令的都被認(rèn)為是新的分隔符,所以,“#”在這里是分隔符,代替了默認(rèn)的“/”分隔符。表示把所有10替換成100。
cat init.ora | grep -v  ^#|grep –v ^*  > initprod.ora

什么是Linux系統(tǒng)

Linux是一種免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

以上就是怎么在Linux中刪除和替換文件中的某一行,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI