導航:首頁 > 程序命令 > linuxsed命令

linuxsed命令

發布時間:2023-08-22 21:29:13

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是什麼意思呢,簡單解釋一下啊

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

㈢ linux三劍客的基本使用——grep、sed、awk

grep、sed、awk是linux功能非常強大的三個命令,grep是查找過濾文本,sed是對文本進行編輯替換,awk是對文本進行分析報告。

最簡單的理解就是找什麼東西用grep,想修改什麼內容用sed,想格式化內容用awk。

創建一個文件名為grep_text.txt的文件,並放入內容:
SillyMadman is both a madman and a fool.
Everyone agrees with this sentence.

我要查找在grep_text.txt文件里有Silly的行
命令是: grep Silly grep_text.txt
會返回內容:SillyMadman is both a madman and a fool.

也可以帶以下參數,這些我認為可能容易用到的參數,其它的參數需要另行查找
文檔,比如可以使用正則進行匹配。

內容相關的
-B, --before context=NUM顯示所在行之前的行數
-A, --after context=NUM顯示所在行之後的行數
-C, --context=NUM列印輸出上下文的行數

過濾內容相關的參數:
-i, --忽略大小寫區分
-w,--匹配查找的整個單詞
-x,--匹配查找的整行文本
-v, --過濾掉匹配的內容

輸出內容相關的參數
-n, --行號列印帶有輸出行的行號

比如,我要查找在grep_text.txt文件里不區分大小寫查找sillymadman,並顯示行號和匹配文本的下一行,那麼我可以用以下命令查找
grep sillymadman grep_text.txt -i -n -A1
內容返回為
1:SillyMadman is both a madman and a fool.
2-Everyone agrees with this sentence.

總體而言grep的使用方式就是
grep [參數...](查找的內容) (文件名)

grep也經常搭配管道符號"|"使用,比如我要查詢某程序的進程,並去掉查找進程本身,那麼命令為
ps -ef | grep program_name | grep -v grep

再創建一個文件名為sed_text.txt的文件,並放入內容:
SillyMadman is both a madman and a fool.
Everyone agrees with this sentence.

我想要在第一行下面添加一句:woshishazi
命令是:sed '1a\woshishazi' sed_text.txt
返回內容為:
SillyMadman is both a madman and a fool.
woshishazi
Everyone agrees with this sentence.

但是以上這個命令不會修改原文件,如果需要,需要加上-i
sed -i '1a\woshishazi' sed_text.txt

上面a是代表append,從指定行後面新的一行添加數據,還有其他操作

操作有以下這些
a :從下面一行新增
i :從上面一行插入,
d :刪除
c :整行替換
p :列印
s :對指定內容進行替換

下面稍微舉下例:
a: sed '1a\woshishazi' sed_text.txt 從第一行後面添加
i: sed '1i\woshishazi' sed_text.txt 從第一行前面插入
d: sed '1d' sed_text.txt 刪除第一行
c: sed '1c\woshishazi' sed_text.txt 替換第一行內容為woshishazi
p: sed -n '1p' sed_text.txt 列印第一行,一般搭配-n使用,其他內容就不會再展示
s:這個相對復雜一點需要詳細說明一下
sed的參數為 '[行]s/要被替換的內容/新的內容/g'
行是一個可選項,可以選擇具體的行進行替換
g代表替換所有匹配到的內容,也可以改為數字,表示第幾次匹配到時進行替換
sed 's\SillyMadman\shafengzi\g' sed_text.txt ,將所有SillyMadman替換為shafengzi
輸出結果為:
shafengzi is both a madman and a fool.
Everyone agrees with this sentence.

最後再創建一個文件名為awk_text.txt的文件,並放入內容:
1 a
2 b
3 c
4 d
5 f
以空白符作為分隔符這個文本相當於每一行有兩個欄位。

那麼列印第一個欄位時 awk '{print 0的話,則代表列印所有欄位

awk默認以空白符作為分隔符,也可以指定分割符通過-F
awk -F: '{print $1}' awk_text.txt,以「:」作為作為分隔符
那麼返回內容就為
1 a
2 b
3 c
4 d
5 f
相當於只有一列或者說一個欄位

然後還可以對前面加上一個正則對行進行匹配內容
awk '/a/{print 2 ~ /a/){print $1}' awk_text.txt
返回內容為
1

㈣ Linux裡面sed -e命令作用是什麼

sed -e是可以在同一行內執行多條命令,而不加-e則不可以

㈤ 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和awk命令哪個重要

你好很高興回答您的問題:

  1. 既然接觸到了三劍客的sed和awk,對Linux應該是有些認知了吧.下面基於這個給您介紹下.

  2. Linux的秘籍三劍客 grep,sed,awk是Linux命令,甚至是shell編程部分的核心技術.

  3. 掌握與數量可以加速處理文本速度.

    1. grep擅長過濾與正則

    2. sed擅長替換與增刪改查

    3. awk擅長統計計算與取行取列

  4. 快收下下面的寶典修煉吧.

㈦ 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-替換字元串

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表示全局替換

閱讀全文

與linuxsed命令相關的資料

熱點內容
程序員測試輕松嗎 瀏覽:168
英雄聯盟神魔怎麼綁定伺服器 瀏覽:980
音樂app怎麼換音質 瀏覽:974
python進階客戶流失 瀏覽:280
華為榮耀10伺服器地址 瀏覽:998
javastring相等判斷 瀏覽:411
程序員考研究生學校 瀏覽:935
java卡頓 瀏覽:500
編程軟體怎麼運行zip文件 瀏覽:505
單片機怎麼做組態 瀏覽:899
android參考文獻外文 瀏覽:684
銅電極電流效率的演算法 瀏覽:142
簡訊內存已滿怎麼處理安卓 瀏覽:312
ogg命令 瀏覽:784
南昌程序員最新消息 瀏覽:151
藍牙編程入門書籍 瀏覽:763
單片機秒錶實驗 瀏覽:411
小米3文件夾設置 瀏覽:566
手動添加dns伺服器加什麼數字 瀏覽:564
單片機中三位數碼管原件 瀏覽:142