如何用sed命令來批量替換文件內容?
謝謝你邀請我。我來回答這個shell命令!
Sed命令功能sed命令可以直接輸入到控制臺并執行,也可以在腳本文件中執行。
Sed逐行讀取傳入的數據流。
使用命令只能修改每行中匹配的數據。
它不會修改原始數據。
生成的新數據將輸出到stdout,通常是控制臺,或者輸出到一個文件。
replace命令使用s(1)通過pipeline命令輸入數據。
(2)替換文件中的數據
1.日志
It這是我們的數據文件
讓讓我們直接處理1.log。
這個文件的數據,這次我們使用兩個匹配的命令(只是用分號分隔,并在前面加一個-e,但是它沒有-e)就沒有問題,我們可以發現處理過的數據已經正確打印出來了,如果你再看一下1.log。
您會發現sed不修改源文件中的數據。
如果需要將生成的新數據輸出到特定文件,可以使用重定向大于號:
(3)將命令寫在文件中。
有時候我們會重復使用一些命令。如果我們每次都需要手動輸入,那就太麻煩了。幸運的是,我們可以在一個文件中編寫這些匹配的命令。
看圖,我們現在把順序寫進去
在該文件中,只需在sed命令前面添加-f,就可以方便地運行該命令。
(4)更換標記
我們可以認為每一個替換命令都是一個正則表達式,所以每一個單獨的命令在一行中只會使用一次,前面的命令會先使用。對于全局匹配,可以在命令后添加G。
可以發現第一行已經完全匹配了g的添加,這個g也可以用一個數字來替換,指定替換哪個位置。
也可以用w把生成的新數據輸入到一個文件中,但是在多條命令的情況下用處不是很大!
(5)單線替換
在文章的開頭,sed會逐行查詢,有時我們只想替換指定行中的數據。我們做什么呢可以在s字母前加一個數字代表哪一行。
上圖只替換了第二行的數據。
我們還可以指定行間隔“開始行逗號和結束行”。
如上所示,第一個命令替換第二行和第三行中的數據($代表最后一行)。
注意,以這種為多個命令指定的行數僅對單個命令有效!當然,我們可以用大括號將所有匹配的命令括起來,并將指定的行放在大括號的左邊,那么指定的行將作用于多個命令,如下所示:
指定特定行的另一種方法是在s前添加文本匹配命令,如下所示:
我們使用字符they來匹配第二行(字符串前面必須有一個斜杠)
刪除命令d(1)上述指定的行數也適用于刪除命令。
無論是行號匹配還是文本匹配,都沒有問題。
也可以通過匹配文本來刪除。除了間隔,如下所示:
匹配這些字符和那些字符之間的三行。
insertI和appendA這兩個命令與js中的insert和append具有相同的語義。果然語言都一樣!
這兩個命令比較簡單,但是要注意前面一行不能是區間,這樣應該更容易理解!
修改c行
該命令將替換整行數據,并且可以用行號間隔來修改行。
轉換命令Y命令格式y/originchar/replacechar/,originchar和replacechar必須一一對應,否則報錯!
這個也比較簡單,所以我贏了不要多說。
從文件中讀取數據R如上所述,我們可以使用W將數據輸出到文件中,因此我們可以使用R從文件中讀取數據,如下所示:
我們很容易把2.log。
文件的數據被讀出并插入到1.log中。
最后。
r前面可以是若干行或一個文本匹配。
這只是s
感知技術特點?
農業傳感器技術正逐步走向小型化、智能化和移動化。國內外研究從傳感器材料入手,探索新一代智能傳感器技術。小型便攜式傳感器在國外已經應用于食品加工、環境污染、農產品儲藏等領域,而國內目前生產農業智能傳感器產品的企業并不多。
無線傳感器網絡具有低功耗、低成本、分布式和自組織的特點。在,無線傳感器網絡已應用于精準農業生產,并已應用于安塞和楊凌的保護性作物。
射頻識別技術(RFID)是一種實現多目標識別的自動識別技術。在歐美,對于家畜的識別和追蹤都有相關規范,并制定了相應的管理制度。企業自主研發生產的低成本動物電子RFID標簽已用于監測畜禽養殖環境和體征,開發母豬電子飼喂站。
農業遙感技術正逐漸與新一代農業無人機技術和農業地面傳感網絡相結合,呈現出新的發展趨勢,如多尺度農業信息監測網絡。將全球定位系統(GPS)和地理信息系統(GIS)技術相結合,因地制宜地應用于耕作方案的設計,以提高作物產量,保護生態環境。