sed

sed

可依照script的指令,来处理、编辑文本文件。 多用于对文本的行来操作,
常见 sed [option] 's///g' tmp.txt


参数说明

-e 多次使用sed

-r 扩展正则表达式

-n 的时候将只打印包含模板的行

动作说明


echo 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0|sed 's/Bcast.*$//'

# 下面重点 !!!

nl /etc/passwd |sed 's/:/\t/'|less -S
nl /etc/passwd |sed 's/:/\t/g'|less -S

nl /etc/passwd |sed 's/://g'|less -S


nl /etc/passwd |sed '4,$s/:/\t/'|less -S

nl /etc/passwd | sed -e 's/root/#####/' -e 's/qmcui/###!!!/'|less -S

# nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'    # 多次替换模式
#nl /etc/passwd | sed -e 's/:/\t/;s/:/\t/'|less -S  # 理解;

# 上面重点 !!!

#nl /etc/passwd | sed 's/false$/&! ! !/' | less -S  # &代指match

nl /etc/passwd | sed '1a\llll llllllll \n lllllll'|less -S

nl /etc/passwd | sed '2a drink tea' # 插到第2行后

nl /etc/passwd | sed '2i drink tea' | cat -n    # 插到第2行前

nl /etc/passwd | sed '3,$d' # 删除,熟悉3,$ + 动作命令d:删除动作

nl /etc/passwd | sed '2,5c No 2-5 number'    # 替换2-5行为No 2-5 number'

nl /etc/passwd | sed -n '5,7p'    # 输出

nl /etc/passwd | sed -n '2p;4,5p'

nl /etc/passwd |sed -n '4,+5p'

seq 10|sed -n '1~3p'
# 打印第4行,然后每三行再打印一行,即1,4,7,10

seq 10| sed -n '4~4p'
# 打印第4行,然后每4行再打印一行,即4,8
seq 10| sed -n '1~2p'
# 打印奇数行,即1,3,5,7,9
seq 10| sed -n '0~3p'
# 打印3,6,9

nl /etc/passwd | sed -n '/root/p'   # 只打印包含模式root的行

nl /etc/passwd | sed '/^$/d'

sed -i 's/\.$/\!/g' regular_express.txt

sed -i '$a # This is a test' regular_express.txt

history |head -3|sort|uniq -c |sed 's/^ *[\t]*//'
# 删掉开头空格\t

# 20200522 添加
less tmp1|sed  's#^Female Female\t#Female#'|less -S

动作含义

a :新增, a 接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c接字串,这些字串可以取代 n1,n2 之间的行!

d :删除, d 后面通常不接任何;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :打印,通常 p 会与参数 sed -n 一起运行~

s :取代,

​ + g:全局替换

​ + i:忽略字符大小写

通配符:

​ $:

​ 表示行号时:最后一行

​ 一行时候:代表行末!

示例:

​ /pattern1/,/pattern2/ :第一次被模式1匹配到的行开始到第一次被模式2匹配到的行结束。

区域处理

sed '1,2s/ok//'

   第一二行执行s/ok//操作!

uptime|sed -n '/,/s/,/ /gp'

问题中/,/是个正则表达式,用来在s///前面表示区域!表示只要该行中有逗号,那么就执行s命令。

  将含有,的行进行 s/,/ /gp操作,将,全部换成空格并print

同款示例:

nl /etc/passwd | sed -n '/root/s/:/\t/p'
nl /etc/passwd | sed -n '1,2s/:/\t/p'


20191216更新:

sed遇到shell变量的时候:百度sed替换用shell的变量
上例子:

# cat overrides.json |sed -e "2s#: \".*\",#: \"$PWD/FASTQ\",#"
$ pwd=$PWD;cat overrides.json |sed -e "2s#: \".*\",#: \"$pwd/FASTQ\",#"|head -n 3
{
    "PATH" : "/ifs9/B2C_COM_P2/NIFTY/Zebra/NiftyProd/JointLab/guangzhouyike/20191216/FASTQ",
    "HOME" : "/ifs9/BC_B2C_01A/B2C_NIFTY/PROJECT/Zebra/Zebra_V3.0",

### 下面多此一举;
$ pwd=$PWD;cat overrides.json |sed -e "2s#: \".*\",#: \"\\$pwd/FASTQ\",#"|head -n 3
{
    "PATH" : "/ifs9/B2C_COM_P2/NIFTY/Zebra/NiftyProd/JointLab/guangzhouyike/20191216/FASTQ",
    "HOME" : "/ifs9/BC_B2C_01A/B2C_NIFTY/PROJECT/Zebra/Zebra_V3.0",


其他

不学习: N,n

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,820评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,648评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,324评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,714评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,724评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,328评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,897评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,804评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,345评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,431评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,561评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,238评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,928评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,417评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,528评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,983评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,573评论 2 359

推荐阅读更多精彩内容

  • Linux sed命令是利用script来处理文本文件。 sed可依照script的指令,来处理、编辑文本文件。 ...
    MiracleJQ阅读 275评论 0 0
  • sed与awk实例 文本间隔 在每一行后面增加一空行 将原来的所有空行删除并在每一行后面增加一空行。这样在输出的文...
    stuha阅读 1,901评论 0 21
  • 简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(p...
    699b979fc4da阅读 1,008评论 0 1
  • 一、前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等。如果我们相对这些文件进行一些...
    以七v为书阅读 1,518评论 0 5
  • grep擅长查找,awk擅长分析(select),sed擅长批量编辑行概述SED的英文全称是 Stream EDi...
    Arroganter阅读 1,075评论 0 7