導航:首頁 > 程序命令 > 在linux中sed命令

在linux中sed命令

發布時間:2023-08-10 00:01:41

linux使用sed命令添加字元串方法教程

通常在Linux中添加字元串可以用命令實現,有很多種方式,有一種就是在文本的首尾行添加字元串。那麼具體怎麼使用呢?本文就來介紹一下Linux使用sed命令添加字元串的方法。

用sed命令在行首或行尾添加字元的命令有以下幾種:

假設處理的文本為test.file

在每行的頭添加字元,比如“HEAD”,命令如下:

sed ‘s/^/HEAD&/g’ test.file

在每行的行尾添加字元,比如“TAIL”,命令如下:

sed ‘s/$/&TAIL/g’ test.file

4.也可以把兩條命令和在一起,在test.file的每一行的行頭和行尾分別添加字元“HEAD”、“TAIL”,命令:sed ‘/。/{s/^/HEAD&/;s/$/&TAIL/}’ test.file

以上其實都還OK,昨天花太多時間,主要因為被處理的文件是用mysql從資料庫提取的結果導出來的,別人給我之後我就直接處理,太腦殘了= -我一直有點懷疑之所以結果不對,有可能是windows和linux換行的問題,可是因為對sed不熟,就一直在搞sed。

眾所周知(= -),window和linux的回車換行之雲雲,如果你知道了,跳過這一段,不知道,讀一下唄:

Unix系統里,每行結尾只有“《換行》”,即“ ”;Windows系統裡面,每行結尾是“《換行》《回 車》”,即“ ”。一個直接後果是,Unix系統下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在 Unix下打開的話,在每行的結尾可能會多出一個^M符號。

好了,所以我的問題就出在被處理的文件的每行末尾都有^M符號,而這通常是看不出來的。可以用“cat -A test.file”命令查看。因此當我想在行尾添加字元的時候,它總是添加在行首且會覆蓋掉原來行首的字元。

補充:系統常用維護技巧

1,在 “開始” 菜單中選擇 “控制面板” 選項,打開 “控制面板” 窗口,單擊 “管理工具” 鏈接

2,在打開的 “管理工具” 窗口中雙擊 “事件查看器” 圖標

3, 接著會打開 “事件查看器” 窗口

4,在右側窗格中的樹狀目錄中選擇需要查看的日誌類型,如 “事件查看器本地--Win日誌--系統日誌,在接著在中間的 “系統” 列表中即查看到關於系統的事件日誌

5,雙擊日誌名稱,可以打開 “事件屬性” 對話框,切換到 “常規” 選項卡,可以查看該日誌的常規描述信息

6,切換到 “詳細信息” 選項卡,可以查看該日誌的詳細信息

7,打開 “控制面板” 窗口,單擊 “操作中心” 鏈接,打開 “操作中心” 窗口,展開 “維護” 區域

8,單擊 “查看可靠性歷史記錄” 鏈接,打開 “可靠性監視程序” 主界面,如圖所示, 用戶可以選擇按天或者按周為時間單位來查看系統的穩定性曲線表,如果系統近日沒出過什麼狀況, 那麼按周來查看會比較合適。觀察圖中的曲線可以發現,在某段時間內,系統遇到些問題,可靠性指數曲線呈下降的趨勢,並且在這段時間系統遇到了三次問題和一次警告,在下方的列表中可以查看詳細的問題信息。

相關閱讀:系統故障導致死機怎麼解決

1、病毒原因造成電腦頻繁死機

由於此類原因造成該故障的現象比較常見,當計算機感染病毒後,主要表現在以下幾個方面:

①系統啟動時間延長;

②系統啟動時自動啟動一些不必要的程序;

③無故死機

④屏幕上出現一些亂碼。

其表現形式層出不窮,由於篇幅原因就介紹到此,在此需要一並提出的是,倘若因為病毒損壞了一些系統文件,導致系統工作不穩定,我們可以在安全模式下用系統文件檢查器對系統文件予以修復。

2、由於某些元件熱穩定性不良造成此類故障(具體表現在CPU、電源、內存條、主板)

對此,我們可以讓電腦運行一段時間,待其死機後,再用手觸摸以上各部件,倘若溫度太高則說明該部件可能存在問題,我們可用替換法來診斷。值得注意的是在安裝CPU風扇時最好能塗一些散熱硅脂,但我在某些組裝的電腦上卻是很難見其蹤影,實踐證明,硅脂能降低溫度5—10度左右,特別是P Ⅲ 的電腦上,倘若不塗散熱硅脂,計算機根本就不能正常工作,曾遇到過一次此類現象。該機主要配置如下:磐英815EP主板、PⅢ733CPU、133外頻的128M內存條,當該機組裝完後,頻繁死機,連Windows系統都不能正常安裝,但是更換賽揚533的CPU後,故障排除,懷疑主板或CPU有問題,但更換同型號的主板、CPU後該故障也不能解決。後來由於發現其溫度太高,在CPU上塗了一些散熱硅脂,故障完全解決。實踐證明在賽揚533以上的CPU上必須要塗散熱硅脂,否則極有可能引起死機故障。

3、由於各部件接觸不良導致計算機頻繁死機

此類現象比較常見,特別是在購買一段時間的電腦上。由於各部件大多是靠金手指與主板接觸,經過一段時間後其金手指部位會出現氧化現象,在拔下各卡後會發現金手指部位已經泛黃,此時,我們可用橡皮擦來回擦拭其泛黃處來予以清潔。

4、由於硬體之間不兼容造成電腦頻繁死機

此類現象常見於顯卡與其它部件不兼容或內存條與主板不兼容,例如SIS的顯卡,當然其它設備也有可能發生不兼容現象,對此可以將其它不必要的設備如Modem、音效卡等設備拆下後予以判斷。

5、軟體沖突或損壞引起死機

此類故障,一般都會發生在同一點,對此可將該軟體卸掉來予以解決。

② 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日誌截取利器——sed命令(親測可用)

在生產環境中,往往沒有條件給我們去debug排查,更多時候我們是通過日誌來看具體的報錯日期。
但是日誌往往是一直在實時更新,而且記錄條數龐大,很難直接定位到錯誤信息。這個時候,就可以利用sed命令來截取指定時間段內的日誌(也是網上大多數博主的做法)。
具體命令如下:

這條命令可以查詢2020.10.13號當天9點到9點十分中間的所有的日誌信息。
但是這條命令的使用有兩個前提(很多網上的博主都沒有提到)
第一,日誌輸出的日期格式是要滿足命令中的格式 ,如果不是的話就跟著實際的格式改
第二,輸入的日期必須要真實存在!!! ,比如說9點整剛好沒有日誌輸出,那麼這條命令就會失效

更加通配的命令可以是這樣, 使用 號*

這樣無論九點整的時候是否有日誌產生,就都可以獲取到9點整到現在的所有日誌了
使用 > ,將截取到的內容輸出到指定的文件中,方便進一步查看

ps:在實際操作中,我們一般會在後面加grep命令做進一步的關鍵字過濾

④ Linux命令之sed-刪除匹配行

1. sed -i '/preSql/d' a.txt

---刪除匹配到 preSql的行

2. sed -i '1d' a.txt

---刪尺數除第一行

3. sed -i '3~2d' a.txt

---從第三行開始,每隔一行刪除

4. sed -i '4,8d' a.txt

---刪除從第4行到激困祥第8行

5. sed -i '$d'  明搏a.txt

---刪除最後一行

6. sed '/^$/d' a.txt

---刪除所有空行

7. sed -i  '/Website Design/,$d' a.txt

---從匹配行到末尾行

8. sed -i  '/Storage/,+2d' a.txt

--- 刪除匹配行和之後兩行

⑤ linux之文本內容替換命令sed

sed簡介:流編輯工具,用來對文本進行過濾與替換操作。

sed流程:sed通過一次僅讀取一行內容來對某些指令進行處理後輸出。

1、sed通過文件或管道讀取文件內容,但sed默認並不直接修改源文件,而是將讀入的內容復制到緩沖區中,稱之為模式空間。
2、所有的指令操作都是在模式空間找那個進行
3、sed根據相應的指令對模式空間中的內容進行處理並輸出結果,默認輸出至標准輸出(即屏幕上)。

sed基本語法格式:
用法:sed[選項]...{腳本指令}[輸入文件]...
選項: -version 顯示sed版本
-help :顯示幫助文檔
-n,-quiet,-silent靜默輸出,默認情況下,sed程序在所有的腳本指令執行完畢後,將自動列印模式空間中的內容。
-e script允許多個腳本指令被執行
-f script-file從文件中讀取腳本指令,對編寫自動化腳本程序很實用
-i ,-in-place 該選項直接修改源文件
-l N 該選項指定l指令可以輸出的行長度,l指令為輸出非列印字元。
-posix 禁用GNU sed擴展功能。
-r 在腳本指令中使用擴展正則表達式。
-s,-separate 默認情況下,sed將把輸入的多個文件名作為一個長的連續的輸入流。而GNU sed則允許把它們當作單獨的文件。
-u,-unbuffered 最低限度的緩存輸入與輸出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示刪除指令;
s,substitution表示替換指令。
sed腳本指令的基本格式是:
[地址,即路徑]命令(有些命令僅可以對一行操作,有些可以對多行操作),命令也可以用花括弧進行組合,使命令序列可以作用於同一個地址。
address{
command1
command2
command3
}

sed的基本工作方式是:

sed的替換命令s:

1、全局替換 : s/old/new/g ,其中g為全局替換,用於替換所有出現的次數; /如果和正則匹配的內容沖突可以使用其他符號,如 : s@old@new@g
2、標志位

為什麼要有多行模式: 配置文件一般有單行出現,但也有使用json或XML格式的配置文件,為多行出現。
多行模式處理命令N、D、P

⑥ Linux sed 之G、H、g、h使用命令詳解

1.把文本第1行讀入到內存 模式空間(pattern space),相當於放到流程水線上處理吧
2.把處理好的結果存放到另一個內存空間(hold space)相當於臨時的倉庫吧
3.輸出處理結果,循環處理第2行,覆蓋清空(pattern space)、(hold space)至最後一行

由於各種各樣的原因,比如用戶希望在某個條件下腳本中的某個命令被執行,或者希望模式空間得到保留以便下一次的處理,都有可能使得sed在處理文件的時候不按照正常的流程來進行。這個時候,sed設置了一些高級命令來滿足用戶的要求。

sed命令:

不管是大寫還是小寫g、h都是在pattern space、hold space相互拷貝
區別是 小寫代表清空原來數據,大寫是保留原來數據在後面追加新數據
案例

圖解分析過程
P:Pattern Space
H:Hold Space
藍色:Hold Space中的數據
綠色:Pattern Space中的數據

案例

參考鏈接:
https://www.cnblogs.com/fhefh/archive/2011/11/22/2259097.html

⑦ Linux中的sed是什麼意思呢,簡單解釋一下啊

Sed是一項Linux指令,全稱是Stream
EDitor,功能同awk類似,差別在於,sed簡單,對列處理的功能要差一些,awk的功能復雜,對列處理的功能比較強大。Sed主要用於自動編輯一個或者多個文件,多用於腳本中對文件的處理。
Sed命令可以對文件進行增加、刪除、修改和查找操作,所以學好sed命令是寫自動化腳本必須的基礎之一。

⑧ linux sed 替換

Linux sed 命令是利用腳本來處理文本文件。

sed 可依照腳本的指令來處理、編輯文本文件。

Sed 主要用來埋廳自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等。
語法

參數說明:

regular_express.txt 文件內容如下:

利用 sed 將 regular_express.txt 內每一行結尾若為 . 則換成 !

:q:q

利用 sed 直接在 regular_express.txt 最後一行加入 # This is a test:

由於 $ 代表的是最後一行,而 a 的動作是新增,因此該文件最後新增 # This is a test!

sed 的 -i 選項慶液冊可以直接修改文件內容,這功能非常有幫助!舉例來說,如果你有一個 100 萬行的文件,你要在第 100 行加某些文字譽宏,此時使用 vim 可能會瘋掉!因為文件太大了!那怎辦?就利用 sed 啊!透過 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修訂!
sed -i 常見用法(直接對文本文件進行操作的)
替換掉每行的第一個字元串

替換掉所有的字元串 sed -i 's/原字元串/新字元串/g' file

去掉 「行首」 帶「@」的首字母@

特定字元串的行前插入新行

特定字元串的行後插入新行

特定字元串的刪除

閱讀全文

與在linux中sed命令相關的資料

熱點內容
老韓綜app怎麼看不了了 瀏覽:227
只有一個程序員的體驗 瀏覽:321
用伺服器地址怎麼有網 瀏覽:550
路由器伺服器昵稱是什麼 瀏覽:713
程序員男友消失了 瀏覽:399
程序員搜索框自動提示 瀏覽:26
android44api20 瀏覽:675
adb刷recovery命令 瀏覽:696
廣聯達正版加密鎖可以補辦嗎 瀏覽:944
java程序員一天多少行代碼 瀏覽:947
喪屍危機java 瀏覽:124
華為手機怎麼去除app標記未讀信息 瀏覽:856
java監控文件夾 瀏覽:807
群控伺服器主機怎麼轉變普通電腦 瀏覽:707
手機怎麼調整app大小 瀏覽:455
加密門禁卡揭秘 瀏覽:139
詞釋pdf 瀏覽:993
安卓手機上如何停止自動續費 瀏覽:882
加密編碼摘要 瀏覽:787
疫情命令黨 瀏覽:498