sed的簡單使用
- sed
- 1.輸出
- 2.查看行號
- 3.洗掉
- 4.替換
- 5.Sed中s替換的高級應用
- 1.洗掉檔案中每行的第二個、最后一個字符
- 2.洗掉檔案中所有的數字
- 3.將檔案中每行的第一個、倒數第1個字符互換
- 4.為檔案中每個大寫字母添加括號
- 6. 行下追加 ,行上添加 ,替換整行
sed
sed 流式編輯器,可以對檔案進行非互動式增刪改
查,逐行處理
1,前置指令 | sed 選項 定址符 指令
2,sed 選項 定址符 指令 被處理檔案
選項 -n 屏蔽默認輸出 -i寫入檔案 -r支持擴展正則
指令 p輸出 d洗掉 s替換
1.輸出
sed -n '1p' user //輸出第1行
sed -n '2p' user //輸出第2行
sed -n '3p' user //輸出第3行
sed -n '2,4p' user //輸出第2~4行
sed -n '2,+1p' user //輸出第2行以及后面1行
sed -n '2p;4p' user //輸出第2行,第4行
sed -n '/^root/p' user //在sed中使用正則運算式輸出以root開頭的行
sed -n '$p' user //查看最后一行
sed -n '1!p' user //查看除了第1行以外的行, !代表取反
2.查看行號
sed -n '=' user //查看所有行號
sed -n '$=' user //查看最后一行的行號,相當于查看檔案
總共有幾行
3.洗掉
sed '1d' user //刪第1行
sed 'd' user //刪所有
sed '3d' user //刪第3行
sed '2,5d' user //刪2~5行
sed '4,+2d' user //刪4行以及后面2行
sed '1d;3d' user //刪第1行,第3行
sed '$d' user //洗掉最后一行
4.替換
vim test.txt //準備素材,寫入下列內容
2017 2011 2018
2017 2017 2024
2017 2017 2017
sed 's/2017/8888/' test.txt //替換所有行的第1個2017為8888
sed '1s/2017/8888/' test.txt //替換第1行的第1個2017
sed '2s/2017/8888/' test.txt //替換第2行
sed '1,2s/2017/8888/' test.txt //替換1~2行
sed 's/2017/8888/2' test.txt //替換所有行的第2個2017
sed 's/2017/8888/3' test.txt //替換所有行的第3個2017
sed '/2011/s/2017/8888/' test.txt //替換有2011的行的第1個2017
sed 's/2017/8888/g' test.txt //替換所有行的所有個
sed '3s/2017/8888/;3s/2017/8888/' test.txt //替換第3行的第1個和第2個2017
注意事項:可以更改替換的間隔符號
例如:sed ‘s!/bin/bash!/sbin/sh!’ /etc/passwd
將 /etc/passwd中的/bin/bash替換成/sbin/sh
5.Sed中s替換的高級應用
1.洗掉檔案中每行的第二個、最后一個字符
sed 's/.//2;s/.$//' test.txt
2.洗掉檔案中所有的數字
sed -i 's/[0-9]//g' test.txt
3.將檔案中每行的第一個、倒數第1個字符互換
echo abcdefghi > abc
sed -r 's/^(.)(.*)(.)$/\3\2\1/' abc
4.為檔案中每個大寫字母添加括號
echo qwdqDGjdksdhTTh > test
sed -r 's/([A-Z])/(\1)/g' test
6. 行下追加 ,行上添加 ,替換整行
sed 'a 666' user //在所有行下追加666
sed '1a 666' user //第1行下追加666
sed 'i 666' user //所有行上添加666
sed '3i 666' user //第3行上添加666
sed '2a 666' user //第2行下追加666
sed 'c 666' user //所有行替換成666
sed '/root/c 666' user //找到有root的行替換成666
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231520.html
標籤:其他
上一篇:Ifconfig詳細介紹
