當前位置:首頁 » 操作系統 » linux字元替換

linux字元替換

發布時間: 2024-08-04 14:45:11

Ⅰ 在red hat enter linux中用怎麼替換字元串

sed。在linux中可以利用sed命令來查找和替換文件中的字元串,該命令採用的是流編輯模式,可以根據正則表達式匹配和處理文本文件中的數據,替換語法為「sed」s/要搜索的字元串或正則表達式/替換值/g'要執行操作的文件名」。

Ⅱ linux替換字元串的幾種方法

(1)VIM替換字元串方法
1. 基本替換
:s/str1/str2/ 替換當前行第一個str1為str2
:s/str1/str2/g 替換當前行所有str1為str2
:n,$s/str1/str2/ 替換第 n 行開始到最後一行中每一行的第一個str1為str2
:n,$s/str1/str2/g 替換第 n 行開始到最後一行中每一行所有str1為str2
(n 為數字,若 n 為 .,表示從當前行開始到最後一行)
:%s/str1/str2/(等同於 :g/str1/s//str2/) 替換每一行的第一個str1為str2
:%s/str1/str2/g(等同於 :g/str1/s//str2/g) 替換每一行中所有str1為str2
2. 可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#str1/#str2/# 替換當前行第一個str1/ 為str2/
:%s+/str11/str12/+/str21/str22+ (使用+ 來 替換 / ): /str11/str12/替換成/str21/str22/
3. 文件中刪除^M
問題描述:對於換行,Windows下用回車換行(0A0D)來表示,Linux下是回車(0A)來表示。這樣,將window上的文件拷到Unix上用時,總會有個^M,請寫個用在Unix下的過濾Windows文件的換行符(0D)的shell或c程序。有兩種方法可以完成此目的:
(1)使用命令:cat oldfilename | tr -d 「^V^M」 > newfilename
(2)使用命令:sed -e 「s/^V^M//」 oldfilename > newfilename
需要注意的是在1、2兩種方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必須要手工進行輸入,而不是粘貼。
在vim中處理:首先使用vim打開文件,然後按ESC鍵,接著輸入命令:
:%s/^V^M//
:%s/^M$//g
如果上述方法無用,則正確的解決辦法是:
(1) tr -d "\r" < old_file_name > new_file_name 或者 cat oldfilename | tr -d "\r" > new_file_name
(2) tr -d "\015" < old_file_name > new_file_name或者 cat oldfilename | tr -d "\015" > new_file_name
strings A>B
4. 其它技巧
利用 :s 命令可以實現字元串的替換。具體的用法包括:
:s/str1/str2/ 用字元串 str2 替換行中首次出現的字元串 str1
:s/str1/str2/g 用字元串 str2 替換行中所有出現的字元串 str1
:.,$ s/str1/str2/g 用字元串 str2 替換正文當前行到末尾所有出現的字元串 str1
:1,$ s/str1/str2/g 用字元串 str2 替換正文中所有出現的字元串 str1
:g/str1/s//str2/g 功能同上
從上述替換命令可以看到:g 放在命令末尾,表示對搜索字元串的每次出現進行替換;不加 g,表示只對搜索字元串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜索字元串的行進行替換操作。
(2)sed命令替換字元串
sed替換的基本語法為:
代碼如下:

sed
's/原字元串/替換字元串/'
單引號裡面,s表示替換,三根斜線中間是替換的樣式,特殊字元需要使用反斜線」\」進行轉義,但是單引號」『」是沒有辦法用反斜線」\」轉義的,這時候只要把命令中的單引號改為雙引號就行了,例如:

代碼如下:

sed "s/原字元串包含'/替換字元串包含'/"
//要處理的字元包含單引號
命令中的三根斜線分隔符可以換成別的符號,這在要替換的內容有較多斜線是較為方便,只需要緊跟s定義即可,例如換成問號」?」:

代碼如下:

sed 's?原字元串?替換字元串?'
//自定義分隔符為問號
可以在末尾加g替換每一個匹配的關鍵字,否則只替換每行的第一個,例如:
代碼如下:

sed 's/原字元串/替換字元串/'
//替換所有匹配關鍵字
上箭頭」^」表示行首,美元」$」符號如果在引號中表示行尾,但是在引號外卻表示末行(最後一行),這里犯二了,搜了半天哪個符號表示首行,半天才想起來,首行就是數字」1″啊.那麼在行首和行尾添加字元串就是把行尾和行首替換,例如:

代碼如下:

sed 's/^/添加的頭部&/g' //在所有行首添加
sed
's/$/&添加的尾部/g' //在所有行末添加
sed '2s/原字元串/替換字元串/g' //替換第2行
sed
'$s/原字元串/替換字元串/g' //替換最後一行
sed '2,5s/原字元串/替換字元串/g' //替換2到5行
sed
'2,$s/原字元串/替換字元串/g' //替換2到最後一行
替換樣式可以多個在同一條命令中執行,用分號」;」分隔,例如:

代碼如下:

sed 's/^/添加的頭部&/g;s/$/&添加的尾部/g'
//同時執行兩個替換規則
sed處理過的輸出是直接輸出到屏幕上的,要保存可以將輸出重定向,或者使用參數」i」直接在文件中替換:

代碼如下:

sed -i 's/原字元串/替換字元串/g' filename
//替換文件中的所有匹配項

Ⅲ 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涓璿i鐨勬煡鎵俱佹浛鎹銆佸垹闄ゆ搷浣

vi鏌ユ壘鏇挎崲鍛戒護璇﹁В

涓銆佹煡鎵炬煡鎵懼懡浠/patternEnter 錛氬悜涓嬫煡鎵緋attern鍖歸厤瀛楃︿覆?patternEnter錛氬悜涓婃煡鎵緋attern鍖歸厤瀛楃︿覆浣跨敤浜嗘煡鎵懼懡浠や箣鍚庯紝浣跨敤濡備笅涓や釜閿蹇閫熸煡鎵撅細n錛氭寜鐓у悓涓鏂瑰悜緇х畫鏌ユ壘N錛氭寜鐓у弽鏂瑰悜鏌ユ壘瀛楃︿覆鍖歸厤pattern鏄闇瑕佸尮閰嶇殑瀛楃︿覆錛屼緥濡傦細

1: /abcEnter   #鏌ユ壘abc2: / abc Enter  #鏌ユ壘abc鍗曡瘝錛堟敞鎰忓墠鍚庣殑絀烘牸錛

闄ゆや箣澶栵紝pattern榪樺彲浠ヤ嬌鐢ㄤ竴浜涚壒孌婂瓧絎︼紝鍖呮嫭錛/銆乛銆$銆*銆.錛夛紝鍏朵腑鍓嶄笁涓榪欎袱涓鏄痸i涓巚im閫氱敤鐨勶紝鈥/鈥濅負杞涔夊瓧絎︺

1: /^abcEnter  #鏌ユ壘浠abc寮濮嬬殑琛 2: /test$Enter  #鏌ユ壘浠abc緇撴潫鐨勮 3: //^testEnter  #鏌ユ壘^tabc瀛楃︿覆

浜屻佹浛鎹㈠熀鏈鏇挎崲

1: :s/vivian/sky/     #鏇挎崲褰撳墠琛岀涓涓 vivian 涓 sky2: :s/vivian/sky/g   #鏇挎崲褰撳墠琛屾墍鏈 vivian 涓 sky3: :n,$s/vivian/sky/   #鏇挎崲絎 n 琛屽紑濮嬪埌鏈鍚庝竴琛屼腑姣忎竴琛岀殑絎涓涓 vivian 涓 sky4: :n,$s/vivian/sky/g   #鏇挎崲絎 n 琛屽紑濮嬪埌鏈鍚庝竴琛屼腑姣忎竴琛屾墍鏈 vivian 涓 sky5: 錛坣 涓烘暟瀛楋紝鑻 n 涓 .錛岃〃紺轟粠褰撳墠琛屽紑濮嬪埌鏈鍚庝竴琛岋級6: 7: :%s/vivian/sky/    #錛堢瓑鍚屼簬 :g/vivian/s//sky/錛 鏇挎崲姣忎竴琛岀殑絎涓涓 vivian 涓 sky8: :%s/vivian/sky/g  #錛堢瓑鍚屼簬 :g/vivian/s//sky/g錛 鏇挎崲姣忎竴琛屼腑鎵鏈 vivian 涓 sky

鍙浠ヤ嬌鐢 #鎴+ 浣滀負鍒嗛殧絎︼紝姝ゆ椂涓闂村嚭鐜扮殑 / 涓嶄細浣滀負鍒嗛殧絎

1: :s#vivian/#sky/#     鏇挎崲褰撳墠琛岀涓涓 vivian/ 涓 sky/2: :%s+/oradata/apras/+/user01/apras1+ 錛3: 浣跨敤+ 鏉 鏇挎崲 / 錛夛細 /oradata/apras/鏇挎崲鎴/user01/apras1/

鍒犻櫎鏂囨湰涓鐨刕M闂棰樻弿榪幫細瀵逛簬鎹㈣岋紝window涓嬬敤鍥炶濺鎹㈣岋紙0A0D錛夋潵琛ㄧず錛宭inux涓嬫槸鍥炶濺錛0A錛夋潵琛ㄧず銆傝繖鏍鳳紝灝唚indow涓婄殑鏂囦歡鎷峰埌unix涓婄敤鏃訛紝鎬諱細鏈変釜^M錛岃峰啓涓鐢ㄥ湪unix涓嬬殑榪囨護windows鏂囦歡鐨勬崲琛岀︼紙0D錛夌殑shell鎴朿紼嬪簭銆備嬌鐢ㄥ懡浠わ細cat filename1 | tr -d 鈥淾V^M鈥 newfile;浣跨敤鍛戒護錛歴ed -e 鈥渟/^V^M//鈥 filename outputfilename闇瑕佹敞鎰忕殑鏄鍦1銆2涓ょ嶆柟娉曚腑錛宆V鍜宆M鎸囩殑鏄疌trl+V鍜孋trl+M銆備綘蹇呴』瑕佹墜宸ヨ繘琛岃緭鍏ワ紝鑰屼笉鏄綺樿創銆傚湪vi涓澶勭悊錛氶栧厛浣跨敤vi鎵撳紑鏂囦歡錛岀劧鍚庢寜ESC閿錛屾帴鐫杈撳叆鍛戒護錛

1: :%s/^V^M//2: :%s/^M$//g

濡傛灉涓婅堪鏂規硶鏃犵敤錛屽垯姝g『鐨勮В鍐沖姙娉曟槸錛

1: tr -d 鈥/r鈥 src dest2: tr -d 鈥/015鈥 dest3: 4: strings AB

鍏跺畠鐢ㄦ硶

1: :s/str1/str2/     #鐢ㄥ瓧絎︿覆 str2 鏇挎崲琛屼腑棣栨″嚭鐜扮殑瀛楃︿覆 str12: :s/str1/str2/g     #鐢ㄥ瓧絎︿覆 str2 鏇挎崲琛屼腑鎵鏈夊嚭鐜扮殑瀛楃︿覆 str13: :.,$ s/str1/str2/g   #鐢ㄥ瓧絎︿覆 str2 鏇挎崲姝f枃褰撳墠琛屽埌鏈灝炬墍鏈夊嚭鐜扮殑瀛楃︿覆 str14: :1,$ s/str1/str2/g   #鐢ㄥ瓧絎︿覆 str2 鏇挎崲姝f枃涓鎵鏈夊嚭鐜扮殑瀛楃︿覆 str15: :g/str1/s//str2/g   #鍔熻兘鍚屼笂

浠庝笂榪版浛鎹㈠懡浠ゅ彲浠ョ湅鍒幫細g 鏀懼湪鍛戒護鏈灝撅紝琛ㄧず瀵規寚瀹氳岀殑鎼滅儲瀛楃︿覆鐨勬瘡嬈″嚭鐜拌繘琛屾浛鎹錛涗笉鍔 g錛岃〃紺哄彧瀵規寚瀹氳岀殑鎼滅儲瀛楃︿覆鐨勯栨″嚭鐜拌繘琛屾浛鎹錛沢 鏀懼湪鍛戒護寮澶達紝琛ㄧず瀵規f枃涓鎵鏈夊寘鍚鎼滅儲瀛楃︿覆鐨勮岃繘琛屾浛鎹㈡搷浣溿備篃灝辨槸璇村懡浠ょ殑寮濮嬪彲浠ユ坊鍔犲獎鍝嶇殑琛岋紝濡傛灉涓篻琛ㄧず瀵規墍鏈夎岋紱鍛戒護鐨勭粨灝懼彲浠ヤ嬌鐢╣鏉ヨ〃紺烘槸鍚﹀規瘡涓琛岀殑鎵鏈夊瓧絎︿覆閮芥湁褰卞搷銆備笁銆佺畝鍗曠殑vim姝e垯琛ㄨ揪寮忚勫垯鍦╲im涓鏈夊洓縐嶈〃杈懼紡瑙勫垯錛歮agic(/m)錛氶櫎浜$.*^涔嬪栧叾浠栧厓瀛楃﹂兘瑕佸姞鍙嶆枩鏉爊omagic(/M)錛氶櫎浜$^涔嬪栧叾浠栧厓瀛楃﹂兘瑕佸姞鍙嶆枩鏉/v錛堝嵆 very magic 涔嬫剰錛夛細浠諱綍鍏冨瓧絎﹂兘涓嶇敤鍔犲弽鏂滄潬/V錛堝嵆 very nomagic 涔嬫剰錛夛細浠諱綍鍏冨瓧絎﹂兘蹇呴』鍔犲弽鏂滄潬vim榛樿や嬌鐢╩agic璁劇疆錛岃繖涓璁劇疆涔熷彲浠ュ湪姝e垯琛ㄨ揪寮忎腑閫氳繃 /m /M /v /V寮鍏充復鏃跺垏鎹銆備緥濡傦細

1: //m.*     # 鏌ユ壘浠繪剰瀛楃︿覆2: //M.*     # 鏌ユ壘瀛楃︿覆 .* 錛堢偣鍙峰悗闈㈣窡涓鏄熷彿錛3: 4: //v(a.c){3}$  # 鏌ユ壘琛屽熬鐨刟bcaccadc5: //m(a.c){3}$  # 鏌ユ壘琛屽熬鐨(abc){3}6: //M(a.c){3}$  # 鏌ユ壘琛屽熬鐨(a.c){3}7: //V(a.c){3}$  # 鏌ユ壘浠繪剰浣嶇疆鐨(a.c){3}$

鎺ㄨ崘浣跨敤榛樿ょ殑magic璁劇疆錛屽湪榪欑嶆儏鍐典笅錛屽父鐢ㄧ殑鍖歸厤鏈夛細

1: //abc     #鏌ユ壘浠test寮濮嬬殑瀛楃︿覆 2: /abc/     #鏌ユ壘浠test緇撴潫鐨勫瓧絎︿覆 3:  4: $    鍖歸厤涓琛岀殑緇撴潫 5: ^    鍖歸厤涓琛岀殑寮濮 6: /   鍖歸厤涓涓鍗曡瘝鐨勫紑濮嬶紝渚嬪//abcEnter:鏌ユ壘浠abc寮濮嬬殑瀛楃︿覆 7: /   鍖歸厤涓涓鍗曡瘝鐨勭粨鏉燂紝渚嬪/abc/Enter:鏌ユ壘浠abc緇撴潫鐨勫瓧絎︿覆 8:  9: *    鍖歸厤0鎴栧氭10: /+   鍖歸厤1鎴栧氭11: /=   鍖歸厤0鎴1嬈12: 13: .    鍖歸厤闄ゆ崲琛岀︿互澶栦換鎰忓瓧絎  14: /a   鍖歸厤涓涓瀛楃15: /d   鍖歸厤浠諱竴鏁板瓧   16: /u   鍖歸厤浠諱竴澶у啓瀛楁瘝17: 18: []   鍖歸厤鑼冨洿錛屽倀[abcd]s 鍖歸厤tas tbs tcs tds19: /{}   閲嶅嶆℃暟錛屽俛/{3,5} 鍖歸厤3~5涓猘20: /( /)  瀹氫箟閲嶅嶇粍錛屽俛/(xy/)b 鍖歸厤ab axyb axyxyb axyxyxyb ...21: /|   鎴栵紝濡傦細for/|bar 琛ㄧず鍖歸厤for鎴栬卋ar22: 23: /%20c  鍖歸厤絎20鍒24: /%20l  鍖歸厤絎20琛

vi+鏂囦歡鍚嶏紝鍙浠ュ壋寤轟竴涓鏂囦歡

鐢╟at+闂浠峰悕錛屽彲浠ユ煡鐪嬩竴涓鏂囦歡

鐢╟ut -f3+鏂囦歡鍚嶏紝鍙浠ラ夋嫨鏂囦歡涓鐨勭3孌靛瓧絎

杈撳叆鑻辨枃鐨勫啋鍙:鐒跺悗杈撳叆wq鍙浠ヤ繚瀛樻枃浠跺唴瀹瑰苟閫鍑

杈撳叆鑻辨枃鐨勫啋鍙:鐒跺悗杈撳叆q鍙浠ユ斁寮冧繚瀛樺苟閫鍑

杈撳叆鑻辨枃鐨勫啋鍙/鐒跺悗杈撳叆涓涓瀛楃︿覆錛屽彲浠ユ煡鎵捐ュ瓧絎︿覆

濡傛灉浠ヤ笂緇忛獙甯鍒版偍錛岄夯鐑﹀湪宸︿笅瑙掔粰鐐逛釜璧烇紝璋㈣阿錛

熱點內容
電信營業廳安卓文件夾是哪個 發布:2024-11-25 15:40:14 瀏覽:497
後期配置本田遙控鑰匙怎麼換電池 發布:2024-11-25 15:39:37 瀏覽:234
vbs關機腳本 發布:2024-11-25 15:39:32 瀏覽:441
java收入 發布:2024-11-25 15:36:34 瀏覽:884
天天免費腳本 發布:2024-11-25 15:35:06 瀏覽:273
sql2000資料庫質疑 發布:2024-11-25 15:31:20 瀏覽:243
上傳醫保局 發布:2024-11-25 14:57:00 瀏覽:732
刀劍神域緩存 發布:2024-11-25 14:56:07 瀏覽:520
c語言計算機二級編程題 發布:2024-11-25 14:46:49 瀏覽:313
c語言判斷進程是否存在 發布:2024-11-25 14:42:50 瀏覽:274