sed-new

用于按行處理文本文件

https://www.runoob.com/linux/linux-comm-sed.html
http://www.itdecent.cn/p/90fc7c663143

1. 基本語法

cat file|sed 'number operation'

參數(shù)說明:
-n / --quiet / --silent : 僅顯示script處理后的結果,有些命令不適用本參數(shù)則會將原文本一起輸出

2. 刪除行

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk 
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '2,4d'  #刪除第二到第四行
1------------------------------------------------1
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

對以上的刪除操作,效果相同的寫法還有:
cat kkk|sed 2,4d 可以省略單引號
cat kkk|sed -e 2,4d-e 來指定操作
cat kkk|sed 2,4\d 用反斜杠來隔離數(shù)字和操作
cat kkk|sed -e 2,4\d 反斜杠和 -e 結合
cat kkk|sed -e '2,4d' 單引號和 -e 結合

如果只想刪除其中的一行,將 d 之前的數(shù)字改成想要刪除的行號即可

刪除某行到最后一行
cat kkk|sed '3,$d'
sed 操作中,用 $ 代表最后一行的行號

3. 增加行

3.1 在某行前新增一行
(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk 
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '5i llll'  #在第五行前新增一行
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
llll
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed 5i\llll   #在第五行前新增一行
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
llll
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '3i pppp\
uuuuuu'  #增加兩行及以上內(nèi)容
1------------------------------------------------1
2------------------------------------------------2
pppp
uuuuuu
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

當增加兩行及以上內(nèi)容時,每行新增加的字符后要緊跟一個反斜杠,下一行要增加的內(nèi)容要換行輸入

3.2 在某行后新增一行
(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk 
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '3a pppppp'  #在第三行后新增一行
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
pppppp
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed 3a\pppppp  ‘’#在第三行后新增一行
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
pppppp
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '3a pppp\
uuuuuu'  #在第三行后增加連續(xù)的兩行
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
pppp
uuuuuu
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

當增加兩行及以上內(nèi)容時,每行新增加的字符后要緊跟一個反斜杠,下一行要增加的內(nèi)容要換行輸入

4. 以行為單位進行替換
(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk 
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '3,5c ttttttttttttttttttt'  #將文本的第3到5行替換為一行指定文本
1------------------------------------------------1
2------------------------------------------------2
ttttttttttttttttttt
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed '3,5c ttttttttttttttttttt\  #將文本的第3到5行替換成兩行或以上指定文本
> pppppppppppppp'
1------------------------------------------------1
2------------------------------------------------2
ttttttttttttttttttt
pppppppppppppp
6------------------------------------------------6
7------------------------------------------------7
5. 以行為單位進行顯示
(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk 
1------------------------------------------------1
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6------------------------------------------------6
7------------------------------------------------7

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed -n '2p'  #僅顯示第二行
2------------------------------------------------2

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed -n '2,5p'   '#僅顯示第二到第五行
2------------------------------------------------2
3------------------------------------------------3
4------------------------------------------------4
5------------------------------------------------5
6. 字符串查找
(base) zhiyong@zhiyong-OptiPlex-7050:~/Work$ cat kkk|sed -n '/3/p'  #查找所有包含3的行,注意參數(shù)-n的使用
3------------------------------------------------3
3------------------------------------------------3
7. 刪除最后幾行

for i in `seq 10`; do sed -i '$d' aa ; done

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work/Now/Orthology/OrthoDB/Amel_Bimp/Existing_in_all_species$ cat aa|tail
  "count": 6795,
  "skip": 0,
  "limit": 1000,
  "query": "",
  "level": 34735,
  "url": "https://v101.orthodb.org//search?query=&level=34735&species=7460_0%2C132113_0&universal=1&singlecopy=",
  "universal": 100,
  "singlecopy": null,
  "inclusive": 1
}

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work/Now/Orthology/OrthoDB/Amel_Bimp/Existing_in_all_species$ for i in `seq 10`; do sed -i '$d' aa ; done

(base) zhiyong@zhiyong-OptiPlex-7050:~/Work/Now/Orthology/OrthoDB/Amel_Bimp/Existing_in_all_species$ cat aa|tail
    "115at34735",
    "1667at34735",
    "1002at34735",
    "1242at34735",
    "1937at34735",
    "1413at34735",
    "1118at34735",
    "1398at34735",
    "1255at34735"
  ],
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • """1.個性化消息: 將用戶的姓名存到一個變量中,并向該用戶顯示一條消息。顯示的消息應非常簡單,如“Hello ...
    她即我命閱讀 4,823評論 0 6
  • 1、expected an indented block 冒號后面是要寫上一定的內(nèi)容的(新手容易遺忘這一點); 縮...
    庵下桃花仙閱讀 1,054評論 1 2
  • 一、工具箱(多種工具共用一個快捷鍵的可同時按【Shift】加此快捷鍵選取)矩形、橢圓選框工具 【M】移動工具 【V...
    墨雅丫閱讀 1,430評論 0 0
  • 跟隨樊老師和伙伴們一起學習心理知識提升自已,已經(jīng)有三個月有余了,這一段時間因為天氣的原因休課,順便整理一下之前學習...
    學習思考行動閱讀 902評論 0 2
  • 一臉憤怒的她躺在了床上,好幾次甩開了他抱過來的雙手,到最后還堅決的翻了個身,只留給他一個冷漠的背影。 多次嘗試抱她...
    海邊的藍兔子閱讀 947評論 1 4

友情鏈接更多精彩內(nèi)容