linux中sed學習小結

2021-09-20 16:16:09 字數 1576 閱讀 2540

sed行處理工具

1、顯示檔案中匹配行

cat tmp.txt|sed -n '/匹配字元正則/p' (-n是不列印全部檔案)

2、顯示檔案第幾行

cat tmp.txt|sed -n '1p' --第一行--

cat tmp.txt|sed -n '1,3p' --一到三行--

3、替換檔案中字元

cat tmp.txt | sed 's/ee/ff/' 或者 sed 's/ee/ff/' tmp.txt --將tmp.txt檔案中每行第乙個匹配的ee替換為ff,不改變原檔案--

cat tmp.txt | sed 's/ee/ff/g' 或者 sed 's/ee/ff/g' tmp.txt --將tmp.txt檔案中,全部ee替換為ff,不改變原檔案--

sed 's/ee/ff/' tmp.txt > tmp2.txt --將tmp.txt檔案中ee替換為ff,不改變原檔案,新生成乙個新的tmp2.txt檔案--

改變原檔案:sed -i 's/ee/ff/' tmp.txt

4、指定行替換

cat tmp.txt |sed '3,5s/ee/ff/' --將檔案中3到5行替換ee為ff--

5、匹配行的替換

cat tmp.txt | sed '/^w/s/ee/ff/' --將tmp.txt檔案中,以w開頭行中的ee替換為ff--

cat tmp.txt | sed '/^w/,/^x/s/ee/ff/' --將tmp.txt檔案中,以w開頭到x開頭之間的行的ee替換為ff--

6、批量重新命名檔名

例有檔案:

aa.txt bb.txt cc.txt 將其重命為aa.jpg bb.jpg cc.jpg

\( )\為記憶體空間,將匹配的aa bb cc記錄下來,\1為記憶體空間的第乙個匹配

生成mv的命令**,通過sh執行--

7、刪除匹配行--不顯示出來,不修改原始檔

只刪除第二行:$ sed '2 d' employee.txt

刪除1到4行:$ sed '1,4 d' employee.txt

刪除從第二行到最後一行:$ sed '2,$ d' employee.txt

只刪除奇數行:$ sed '1~2 d' employee.txt

刪除所有包含'manager'的行:$ sed '/manager/ d' employee.txt

刪除第一次包含'jason'的行到第四行:$ sed '/jason/,4 d' employee.txt

刪除從第一次匹配'raj'的行 到匹配'jane'之間的行:$ sed '/raj/,/jane/ d' employee.txt

刪除匹配'jason'的行及它下面兩行:$ sed '/jason/,+2 d' employee.txt

一些有用的刪除例子

從乙個檔案刪除所有空行:sed '/^$/ d' employee.txt

刪除所有注釋行(假設注釋以#開頭):sed '/^#/ d' employee.txt

linux中sed學習小結

sed行處理工具 1 顯示檔案中匹配行 cat tmp.txt sed n 匹配字元正則 p n是不列印全部檔案 2 顯示檔案第幾行 cat tmp.txt sed n 1p 第一行 cat tmp.txt sed n 1,3p 一到三行 3 替換檔案中字元 cat tmp.txt sed s ee...

linux中sed學習小結

sed行處理工具 1 顯示檔案中匹配行 cat tmp.txt sed n 匹配字元正則 p n是不列印全部檔案 2 顯示檔案第幾行 cat tmp.txt sed n 1p 第一行 cat tmp.txt sed n 1,3p 一到三行 3 替換檔案中字元 cat tmp.txt sed s ee...

sed 使用小結

sed可用來編輯文字,主要作用是查詢和替換 1.查詢 sed n ahcming p以上作用等同於 grep ahcming 使用 n,sed將不會在操作完成後列印,只有p才表示輸出 2替換sed 命令列 sed s 查詢內容 替換內容 sed s 查詢內容 替換內容 g 行為模式 每次讀取一行,查...