shell批量查找替換文件夾名稱 如何用sed命令來批量替換文件內(nèi)容?
如何用sed命令來批量替換文件內(nèi)容?謝謝你邀請我。我來回答這個shell命令!Sed命令功能sed命令可以直接輸入到控制臺并執(zhí)行,也可以在腳本文件中執(zhí)行。Sed逐行讀取傳入的數(shù)據(jù)流。使用命令只能修改每
如何用sed命令來批量替換文件內(nèi)容?
謝謝你邀請我。我來回答這個shell命令!
Sed命令功能sed命令可以直接輸入到控制臺并執(zhí)行,也可以在腳本文件中執(zhí)行。
Sed逐行讀取傳入的數(shù)據(jù)流。
使用命令只能修改每行中匹配的數(shù)據(jù)。
它不會修改原始數(shù)據(jù)。
生成的新數(shù)據(jù)將輸出到stdout,通常是控制臺,或者輸出到一個文件。
replace命令使用s(1)通過pipeline命令輸入數(shù)據(jù)。
(2)替換文件中的數(shù)據(jù)
1 .日志
It 這是我們的數(shù)據(jù)文件
讓 讓我們直接處理1.log。
這個文件的數(shù)據(jù),這次我們使用兩個匹配的命令(只是用分號分隔,并在前面加一個-e,但是它 沒有-e)就沒有問題,我們可以發(fā)現(xiàn)處理過的數(shù)據(jù)已經(jīng)正確打印出來了,如果你再看一下1.log。
您會發(fā)現(xiàn)sed不修改源文件中的數(shù)據(jù)。
如果需要將生成的新數(shù)據(jù)輸出到特定文件,可以使用重定向大于號:
(3)將命令寫在文件中。
有時候我們會重復(fù)使用一些命令。如果我們每次都需要手動輸入,那就太麻煩了。幸運(yùn)的是,我們可以在一個文件中編寫這些匹配的命令。
看圖,我們現(xiàn)在把順序?qū)戇M(jìn)去
在該文件中,只需在sed命令前面添加-f,就可以方便地運(yùn)行該命令。
(4)更換標(biāo)記
我們可以認(rèn)為每一個替換命令都是一個正則表達(dá)式,所以每一個單獨(dú)的命令在一行中只會使用一次,前面的命令會先使用。對于全局匹配,可以在命令后添加G。
可以發(fā)現(xiàn)第一行加了g就已經(jīng)完全匹配了,這個g也可以用一個數(shù)字來替換,指定替換哪個位置。
也可以用w把生成的新數(shù)據(jù)輸入到一個文件中,但是在多條命令的情況下用處不是很大!
(5)單線替換
在文章的開頭,sed會逐行查詢,有時我們只想替換指定行中的數(shù)據(jù)。我們做什么呢可以在s字母前加一個數(shù)字代表哪一行。
上圖只替換了第二行的數(shù)據(jù)。
我們還可以指定行間隔“開始行逗號和結(jié)束行”。
如上所示,第一個命令替換第二行和第三行中的數(shù)據(jù)($代表最后一行)。
注意,以這種為多個命令指定的行數(shù)僅對單個命令有效!當(dāng)然,我們可以用大括號將所有匹配的命令括起來,并將指定的行放在大括號的左邊,那么指定的行將作用于多個命令,如下所示:
指定特定行的另一種方法是在s前添加文本匹配命令,如下所示:
我們使用字符they來匹配第二行(字符串前面必須有一個斜杠)
刪除命令d(1)上述指定的行數(shù)也適用于刪除命令。
無論是行號匹配還是文本匹配,都沒有問題。
也可以通過匹配文本來刪除。除了間隔,如下所示:
匹配這些字符和那些字符之間的三行。
insert I和append A這兩個命令與js中的insert和append具有相同的語義。果然語言都一樣!
這兩個命令比較簡單,但是要注意前面一行不能是區(qū)間,這樣應(yīng)該更容易理解!
修改c行
該命令將替換整行數(shù)據(jù),并且可以用行號間隔來修改行。
轉(zhuǎn)換命令Y命令格式y(tǒng)/originchar/replacechar/,originchar和replacechar必須一一對應(yīng),否則報錯!
這個也比較簡單,所以我贏了 不要多說。
從文件中讀取數(shù)據(jù)R如上所述,我們可以使用W將數(shù)據(jù)輸出到文件中,因此我們可以使用R從文件中讀取數(shù)據(jù),如下所示:
我們很容易把2.log。
文件的數(shù)據(jù)被讀出并插入到1.log中。
最后。
r前面可以是若干行或一個文本匹配。
這只是s
如何用PowerShell分割文本文件?
PS | select * PS list . txt $ pslistgcpslist . txt #分隔文件$ pslist | {$ i1} {if ($ _) {$ _ ps $ i `。txt} else {$ i}} #根據(jù)內(nèi)容和id修改文件名(添加ID是因為有重名)dir | {$ _ {$newname((gc$_)[1]。(:)[1])。Trim()$id((gc$_)[14]。(:)[1])。trim()Rename-Item $ _($ newname $ id。txt)}