国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux下文本的文本替換——多文收集備用

linux中如何替換文件中的字符串

http://like-eagle.javaeye.com/blog/697655

方法有二:

 

(一)通過vi編輯器來替換。

參考博文:

http://www.linuxdiyf.com/viewarticle.php?id=99843

http://kingaragorn.javaeye.com/blog/467308

 

vi/vim 中可以使用 :s 命令來替換字符串。以前只會使用編輯軟件進(jìn)行替換,今天發(fā)現(xiàn)該命令有很多種寫法(vi 真是強(qiáng)大啊,還有很多需要學(xué)習(xí)),記錄幾種在此,方便以后查詢。

:s/well/good/ 替換當(dāng)前行第一個 well 為 good

:s/well/good/g 替換當(dāng)前行所有 well 為 good

:n,$s/well/good/ 替換第 n 行開始到最后一行中每一行的第一個 well 為 good

:n,$s/well/good/g 替換第 n 行開始到最后一行中每一行所有 well 為 good

n 為數(shù)字,若 n 為 .,表示從當(dāng)前行開始到最后一行

:%s/well/good/(等同于 :g/well/s//good/) 替換每一行的第一個 well 為 good

:%s/well/good/g(等同于 :g/well/s//good/g) 替換每一行中所有 well 為 good

可以使用 # 作為分隔符,此時中間出現(xiàn)的 / 不會作為分隔符

:s#well/#good/# 替換當(dāng)前行第一個 well/ 為 good/

:%s#/usr/bin#/bin#g

可以把文件中所有路徑/usr/bin換成/bin

 

(二)Sumly法直接替換文件中的字符串。(此法不用打開文件即可替換字符串,而且可以批量替換多個文件。)

參考博文:http://easytech.javaeye.com/blog/316948

例1

執(zhí)行命令:
perl -p -i -e "s/China/Sumly/g" /www/*.htm /www/*.txt

上面的意思是說將www文件夾下所有的htm和txt文件中的“China”都替換為“Sumly”

 

例2

執(zhí)行命令:

perl -p -i -e "s/memory_production/memory_production2/g" ./*.sql

 

上面的意思是將當(dāng)前目錄下所有的sql文件中的“memory_production”替換成“memory_production2”

======================================
linux sed 批量替換多個文件中的字符串
http://www.svn8.com/linux/accidence/20100422/29910.html

linux下批量替換文件內(nèi)容   1、網(wǎng)絡(luò)上現(xiàn)成的資料 

  格式: sed -i "s/查找字段/替換字段/g" `grep 查找字段 -rl 路徑`

Svn中文網(wǎng)

  linux sed 批量替換多個文件中的字符串

  sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

  例如:替換/home下所有文件中的www.admin99.net為admin99.net Bbs.Svn8.Com

  sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`

Bbs.Svn8.Com

  exp:sed -i "s/shabi/$/g" `grep shabi -rl ./` Svn8.Com

  2、自己額外附加 Svn8.Com

  2.1 將文件1.txt內(nèi)的文字“garden”替換成“mirGarden”

  # sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很簡單

  2.2 將當(dāng)前目錄下的所有文件內(nèi)的“garden”替換成“mirGarden” 

## sed -i "s/garden/mirGarden/g" `ls` //其實(shí)也就是ls出多個文件名而已

====================================
Linux下如何同時替換多個文件中的文本或字符串
http://hi.baidu.com/jiqing0925/blog/item/0e97ea196662ab4242a9ad14.html
====================================
作者:吉慶( qingfang0515@sina.com )
主頁:http://hi.baidu.com/jiqing0925
轉(zhuǎn)載請保留作者信息。
-------------------
做一件比較復(fù)雜的事通常存在多種方法。
一次性替換多個文件中的文本是我們常遇到的問題,下面是解決這個問題的三種方法:

1. vi 方法
參見vim用戶手冊26.
*26.3*  改動多個文件

假定你有個變量名為 "x_cnt" 而你要把他改為 "x_counter"。
這個變量在多個 C 文件都被用到了。你需要在所有文件中作此改動。你得這么做。
把所有相關(guān)文件放進(jìn)參數(shù)列表:

:args *.c

這個命令會找到所有的 C 文件并編輯其中的第一個。
現(xiàn)在你可以對所有這些文件執(zhí)行置換命令:

:argdo %s/\<x_cnt\>/x_counter/ge | update

命令 ":argdo" 把另一個命令當(dāng)作其參數(shù)。而后者將對參數(shù)列表內(nèi)所有的文件執(zhí)行。
作為參數(shù)的替換命令 "%s" 作用于所有文本行。它用 "\<x_cnt\>" 來查找"x_cnt"。
"\<" 和 "\>" 用來指定僅匹配那些完整的詞,而不是 "px_cnt" 或"x_cnt2"。

替換命令的標(biāo)記中包含 "g",用以置換同一行文本內(nèi)出現(xiàn)的所有的匹配詞 "x_cnt"。
標(biāo)記 "e" 用于避免因文件中找不到 "x_cnt" 而出現(xiàn)錯誤信息。
否則 ":argdo" 命令就會在遇到第一個找不到 "x_cnt" 的文件時中斷。
字符 "|" 分隔兩條命令。后面的 "update" 命令將那些有改動的文件存盤。
如果沒有 "x_cnt" 被改成 "x_counter",這個命令什么也不做。

還有一個 ":windo" 命令,用于在所有視窗內(nèi)執(zhí)行其參數(shù)所規(guī)定的命令。
以及 ":bufdo"命令,對所有緩沖執(zhí)行其參數(shù)所規(guī)定的命令。
使用中要小心,因?yàn)槟阍诰彌_列表中的文件數(shù)量可能超過你能想像的。
請用 ":buffers" 命令 (或 ":ls") 來檢查緩沖列表。

2. perl方法
可以在命令行下進(jìn)行替換,
仍然以vi方法中的例子進(jìn)行講解,把c文件中的"x_cnt" 改為 "x_counter"。
可以執(zhí)行以下命令:
find . -name '*.c' -print0 | xargs -0 perl -pi -e 's/x_cnt/x_counter/g'

xargs 把find命令的結(jié)果作為perl的參數(shù)。
find的參數(shù)-print0和xargs的參數(shù)-0是防止文件名中有空格或新行造成錯誤,可以man xargs獲得幫助。

注意: 如果替換的字符包括 ()[]/"'!? 等等這樣的特殊字符,你必須在字符前加上反斜杠\ 。

這種方法的好處是不用啟動編輯器,比較迅速。缺點(diǎn)是容易出現(xiàn)不想要的替換,例如:把px_cnt替換成了px_counter。

3. sed
仍以上面的例子講解:
find . -name "*.c" -print0 | xargs -0 sed -i 's/x_cnt/x_counter/g'
優(yōu)缺點(diǎn)和perl方法相同。

以上方法的差異只在于使用工具的不同,相信肯定還有別的工具能辦到這件事。
比如emacs,肯定也能做到這些,只是因?yàn)槲也挥胑macs,所以不熟悉。
希望大家總結(jié)自己得心應(yīng)手的方法。
==================
Linux sed批量替換多個字符串

http://www.itqun.net/content-detail/105074.html

比如,要將目錄/modules下面所有文件中的zhangsan都修改成lisi,這樣做:

sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`

解釋一下:

-i 表示inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名

這個命令組合很強(qiáng)大,要注意備份文件。


(1)sed 'y/1234567890/abCDEFGHIJ/' test_sed

sed 'y/1234567890/abCDEFGHIJ/' filename
abCDEFGHIJ
BCDEFGHIJA
CDEFGHIJAB
DEFGHIJABC
注意變換關(guān)系是按兩個list的位置對應(yīng)變換

其中:test_sed的內(nèi)容是:

1234567890
2345678901
3456789012
4567890123


(2)替換每行所有匹配

sed 's/01/Ab/g' test_sed
1234567890
23456789Ab
3456789Ab2
456789Ab23
注意:第一行的0,1沒有分別替換為A,b




刪除:d命令

        *

          $ sed '2d' example-----刪除example文件的第二行。
        *

          $ sed '2,$d' example-----刪除example文件的第二行到末尾所有行。
        *

          $ sed '$d' example-----刪除example文件的最后一行。
        *

          $ sed '/test/'d example-----刪除example文件所有包含test的行。

替換: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/\(love\)able/\1rs/p'
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux下批量替換文件內(nèi)容的方法
grep和sed配合替換文件中的字串
Linux中刪除文件內(nèi)空行的4種方法
svn命令行批量刪除和批量添加
linux 文本編輯命令grep sed awk(轉(zhuǎn)) - linux開發(fā) - gliet...
非常好的Linux命令使用技巧 -
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服