前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sed命令

sed命令

作者头像
端碗吹水
发布2020-09-23 10:11:12
6240
发布2020-09-23 10:11:12
举报
文章被收录于专栏:程序猿的大杂烩

笔记内容:

l 9.4/9.5 sed

笔记日期:2017.8.18

9.4/9.5 sed

wKioL1nkHh3zVC5wAA6sTDWgAhg415.png
wKioL1nkHh3zVC5wAA6sTDWgAhg415.png

sed能够做到grep能做到的功能,sed工具的强项在于替换一些字符。

  使用sed匹配字符串,将需要匹配的字符串写在//里,-n的作用是只打印匹配的行,其他行不打印,p的作用是打印的意思:

wKioL1nkHh6Qvd3mAAHDKIAhH-Y663.png
wKioL1nkHh6Qvd3mAAHDKIAhH-Y663.png

. * + | {}符号sed都支持,在sed命令中使用-r选项来脱义。

wKiom1nkINfRQi9xAAcd8zb3FiI519.png
wKiom1nkINfRQi9xAAcd8zb3FiI519.png
wKiom1nkINrgS6WJAAkVDBr6qo0745.png
wKiom1nkINrgS6WJAAkVDBr6qo0745.png
wKioL1nkHibyNsEQAAMBT-9Krzw678.png
wKioL1nkHibyNsEQAAMBT-9Krzw678.png
wKiom1nkIN7AQ0f1AAOlo7WShg0146.png
wKiom1nkIN7AQ0f1AAOlo7WShg0146.png
wKioL1nkHimShjMlAAMjsRETWzM416.png
wKioL1nkHimShjMlAAMjsRETWzM416.png

sed可以用数字来指定打印某一行或者某个范围,而且不需要加//:

wKioL1nkHn_iHhhLAAIdh_UTNC0759.png
wKioL1nkHn_iHhhLAAIdh_UTNC0759.png
wKioL1nkHoXzAC55AAMab3M0_sU541.png
wKioL1nkHoXzAC55AAMab3M0_sU541.png
wKiom1nkIUDDeE9HAAL7sPaXLu8935.png
wKiom1nkIUDDeE9HAAL7sPaXLu8935.png
wKiom1nkIUWhkMwzAAl9IR8kFB0572.png
wKiom1nkIUWhkMwzAAl9IR8kFB0572.png

-e选项可进行多个操作,例如匹配第一行的同时可以匹配某个字符串的所在行:

wKioL1nkHpDwER1rAAKp7QpDDD8533.png
wKioL1nkHpDwER1rAAKp7QpDDD8533.png

如果出现重合的情况会打印两行,因为它们不是同一个表达式:

wKiom1nkIUnT-hHJAAKLWEgUr9I751.png
wKiom1nkIUnT-hHJAAKLWEgUr9I751.png

加上大写的I可以在匹配时不区分大小写:

wKioL1nkHpSzuC68AAKxgug-sek215.png
wKioL1nkHpSzuC68AAKxgug-sek215.png

使用-d选项可以指定哪些行不显示:

wKiom1nkIYugFADMAAatNVJuOP4900.png
wKiom1nkIYugFADMAAatNVJuOP4900.png

使用-i选项可以删除指定的行:

wKioL1nkH0Hx2SuuAANWXdMopHI117.png
wKioL1nkH0Hx2SuuAANWXdMopHI117.png

还可以针对字符串去删除:

wKioL1nkHtiT2P6wAAI1XSmxnts455.png
wKioL1nkHtiT2P6wAAI1XSmxnts455.png

使用s可以替换字符,和vim的替换方式非常像:

wKiom1nkIZPgfwAgAAp4sCm7BQs864.png
wKiom1nkIZPgfwAgAAp4sCm7BQs864.png

还可以使用正则表达式:

wKiom1nkIZXBr0E0AAXFI3VFbeI461.png
wKiom1nkIZXBr0E0AAXFI3VFbeI461.png

把第一段和最后一段的字符串进行替换:

wKioL1nkHuGyk4ndAAVsQewmAoE229.png
wKioL1nkHuGyk4ndAAVsQewmAoE229.png
wKiom1nkIZvDhCaHAAbYjplJrwA937.png
wKiom1nkIZvDhCaHAAbYjplJrwA937.png

如果需要替换的字符串里含有/,就得用\来脱义,或者使用@和#来表示/:

wKioL1nkH1PQN3CuAAWq_09fcP4050.png
wKioL1nkH1PQN3CuAAWq_09fcP4050.png
wKiom1nkIg2CR-Z2AAZfG5du6rk286.png
wKiom1nkIg2CR-Z2AAZfG5du6rk286.png

把英文字母全部替换成空字符串:

wKioL1nkH1nQXjMQAAXvPuOUEmo527.png
wKioL1nkH1nQXjMQAAXvPuOUEmo527.png

把所有行的前面加上一个字符串:

wKiom1nkIhKwqyJ3AAVFSFpIqs8150.png
wKiom1nkIhKwqyJ3AAVFSFpIqs8150.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/10/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 9.4/9.5 sed
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档