首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SED:为什么替换不能用$来表示行的结束

SED是一种流式文本编辑器,用于对文本进行处理和转换。在SED中,替换操作使用s命令来执行,语法为s/模式/替换内容/。在替换内容中,可以使用&来表示匹配到的模式,但不能使用$来表示行的结束。

原因是,SED中的$符号有特殊的含义,表示行尾。如果在替换内容中使用$,SED会将其解释为行尾符号,而不是普通的字符。这样会导致替换结果不符合预期。

如果需要在替换内容中使用$字符,可以通过转义字符\来实现,即使用\$来表示普通的$字符。

总结起来,替换操作不能使用$来表示行的结束,因为在SED中$有特殊的含义,表示行尾符号。如果需要在替换内容中使用$字符,应该使用\$来转义。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux基础命令介绍十:文本流编辑 sed

,直到主动退出(q)或输入结束。...此时可以用(\`)匹配模式空间开头位置,用(\')匹配模式空间结束位置。 还可以用逗号,分隔两个地址表示一个范围 表示从匹配第一个地址开始,直到匹配第二个地址或文件结尾为止。...8、0,/regexp/ 这种情况下,正则表达式regexp会在第一就开始进行匹配。只有第二个地址是正则表达式时,第一个地址才能用0。 9、addr1,+n表示匹配地址addr1和其后n。...10、addr1,~n表示从匹配地址addr1开始,直到n倍数行为止。 如果没有给出地址,所有的行都会匹配;在地址或地址范围后追加字符!表示对地址取反,所有匹配才会被处理。...4、w file表示如果替换成功,则输出模式空间内容至文件file中。 5、I和i表示匹配regexp时区分大小写。

1.1K30

用 tr 过滤文件

您可以将 tr 看作为 sed (极其)简化变体:它可以用一个字符替换另一个字符,或者可以完全除去一些字符。您也可以用它除去重复字符。这就是所有 tr 所能够做。...那么,为什么要使用 tr,而不使用 sed 呢?当然是为了使事情简单。...例如,如果我们希望用字母“z”替换出现所有字母“a”,则可以用 tr a z ,这条命令毫无疑问比 sed -e s/a/z/g 简单,尤其在把它用到脚本中时,其中引号转义很让人头痛。...如果没有将文件保存为使用 UNIX 换行符表示结束这种格式,则需要将这样文件转换成本机 UNIX 格式,否则一些命令实用程序不会正确地处理这些文件。...Mac OS 行尾以回车字符结束,许多文本处理工具将这样文件作为一来处理。

1.2K30
  • 《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk

    中指定命令添加到已有的命令中 -f file       | 在处理输入时,将file中指定命令添加到已有的命令中 -n            | 产生命令输出,使用printf命令完成输出 一般是单个命令...g:替换所有匹配文本 p:代表原先行内容要打印出来 w file:将替换结果写到文件中去 比如: $sed ‘s/old/new/2’ data.txt    表示第2个old替换成new。...$sed ‘s/old/new/g’ data.txt    表示全部替换 $sed ‘s/old/new/p’ data.txt    会打印与替换命令中指定模式匹配 $sed -n ‘s/old...数字方式寻址 指定地址可以是单个行号,比如: $sed ‘2s/old/new/’ data.txt    // 只替换第2 也可以是起始行加逗号加结束一个区间内,比如: $sed ‘2,4s.../old/new/’ data.txt    // 替换2 - 4 $sed ‘2,$s/old/new/’ data.txt    // 替换2 到结束, $ 表示最后一 2.

    1.9K50

    Sed命令基本使用

    ,逐行进行 分为模式空间和保留空间 逐行处理,支持模式匹配(regex) 默认处理源文件,仅对模式空间中进行处理 处理结束后将模式空间中结果输出到屏幕 Usage sed [option] 'AddressCommond...' file Address(需要处理) StartLine,endLine 比如1,100,表示1-100 特别注意是,可以使用$:最后一 /RegExp/(正则表达式) 比如: /^root.../,表示以root开始 /pattern1/,/pattern2/ 第一次被pattern1匹配到开始到被pattern2匹配到结束 LineNumber 指定某行 startLine, +.../ReplaceString/修饰符:将符合模式字符串替换为ReplaceString(默认只替换每行中第一次被模式匹配到串) 可以使用三个相同字符代替’/’,上面的字符串替换等价于s #pattern...#ReplaceString#修饰符 特别的可以使用&:表示整个模式匹配到字符串 修饰符: g:全局替换 i:匹配时忽略大小写 Options -n:静默模式,不显示模式空间中内容 -r:使用扩展正则表达式

    1.1K60

    linux工具——sed整理

    -i:对执行文件进行修改 -n:只显示处理过 -r:扩展正则表达式 --select(筛选) 筛选条件 (下面英文是我自己想,同学们看明白即可,开始和结束可自由匹配) num: 具体数字 ,指定具体比如...5d 代表删除第五 start,end: 指定开始和结束行号 $: 末尾行 start~step: 指定开始行和步长 start,+num: 表示向后匹配num /regex/:正则匹配 /...r,w 读写(我用比较少) --content operate(内容操作) s:替换 替换掉匹配内容,与linux工具——vim文本编辑器整理中命令行模式替换类似,基本用法:s/src/dest...删除包含you sed '/you/!...N;s/\n/--/; ttag' tmp.txt 为什么不能使用b跳转呢,聪明你能想到吗。。。

    8.6K20

    LINUX运维常用命令详解一

    ,是全部显示文件内信息        -n:在显示时候可以显示行号,这个行号只是显示出来,跟文件内容没有  关系        -E:显示每一结束符,所以linux中文本文件结束符是$...默认编辑原文件,只对模式空间内数据进行处理,处理结束后,将没模式空间打印至屏幕    sed 'AddressCommand'  file...         ...fg:sed '/^\//d' /etc/fastb 删除以/开头      sed '/^\//p' /etc/fastb 显示以/开通         a \string:在指定后追加新...' /etc/grub.conf          2、替换/etc/inittab文件中"id:3:initdefault:"一数字为5;      sed 's/id:3:initdefault...vim超找替换 /PATTERN:从首向下查找PATTERN匹配选项 ?

    89920

    【数据处理】sed原理及使用举例(快速理解核心)

    $ #锚定结束 如:/sed$/匹配所有以sed结尾。 . #匹配一个非换行符字符 如:/s.d/匹配s后接一个任意字符,然后是d。...[^] #匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。...如果没有g标记,则只有每行第一个匹配test被替换成mytest。 $ sed 's/test/mytest/g' example #s选项和p标志一起使用表示只打印那些发生替换。...也就是说,如果某一开头test被替换成mytest,就打印它。 $ sed -n 's/^test/mytest/p' example #&符号表示替换换字符串中被找到部份。...表示把所有10替换成100。 $ sed 's#10#100#g' examplex #选定范围:逗号 #所有在模板test和check所确定范围内行都被打印。

    3.1K546

    Linux sed 命令使用

    表示后面的命令对所有没有被选定发生作用 = 打印当前号码 # 把注释扩展到下一个换行符以前。 替换标记 g 表示行内全面替换。 p 表示打印行。 w 表示写入一个文件。...y 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 元字符集 ^ 匹配开始,如:/^sed/匹配所有以sed开头。...$ 匹配结束,如:/sed$/匹配所有以sed结尾。 . 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...[^] 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。...\/匹配包含以love结尾单词。 x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0

    3.1K100

    常用 linux 命令集锦

    : \ 忽略正则表达式中特殊字符原有含义 ^ 匹配正则表达式开始行 $ 匹配正则表达式结束 \< 从匹配正则表达式开始 \>; 到匹配正则表达式结束...: 1. sed替换基本语法为: sed 's/原字符串/替换字符串/' ------------单引号里面,s表示替换,三根斜线中间是替换样式,特殊字符需要使用反斜线"\"进行转义...一些特殊字符使用   "^"表示首   "$"符号如果在引号中表示行尾,但是在引号外却表示末行(最后一) # 注意这里 " & " 符号,如果没有 "&",就会直接将匹配到字符串替换掉...sed 's/^/添加头部&/g'      #在所有首添加 sed 's/$/&添加尾部/g'      #在所有末添加 sed '2s/原字符串/替换字符串/g'...  #替换第2 sed '$s/原字符串/替换字符串/g' #替换最后一 sed '2,5s/原字符串/替换字符串/g' #替换2到5 sed '2,$

    4.5K10

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    ,导致如果是写一些脚本就会很不方便,这个时候就需要sed和awk这样工具实现。...表示对文中第三及以下行起作用 = 打印当前行号码。 # 把注释扩展到下一个换行符以前。 3.5 替换标记 g 表示行内全面替换。 p 表示打印行。 w 表示写入一个文件。...$ 匹配结束,如:/sed$/匹配所有以sed结尾。 . 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。....txt #替换123.txt、666.txt内第二往后两bck为sh,每行全面替换,命令也可以单独用{}括起来,表示边界 $ sed -i '2~2 s/bck/sh/g' 123....需用到元字符集: 匹配结束,如:/sed/匹配所有以sed结尾

    9.3K21

    【Linux篇】--sed用法

    3、替换标记 g 表示行内全面替换。 p 表示打印行。 w 表示写入一个文件。 x 表示互换模板块中文本和缓冲区中文本。...y 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 4、sed元字符集 ^ 匹配开始,如:/^sed/匹配所有以sed开头。...$ 匹配结束,如:/sed$/匹配所有以sed结尾。 . 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...[^] 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。...\> 匹配单词结束,如/love\>/匹配包含以love结尾单词。 x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0

    1.6K20

    Linux进阶 03 文本处理三驾马车

    或者多次为避免歧义有时前面要加反斜杠\| 或者[] 匹配任意一个高亮为grep独有练习题:cat Data/example.gtf | grep -w -e 'CDS' -w -e 'UTR' #这里为什么能用...:表示否定,取反'2!'...表示除了第22.5 常见command内容图片ript' command:增删改查a:append,在指定后面增加一i:insert,在指定前面增加一d:delete,删除某一或某几行,...也可以指定删除匹配上c:change,改变指定内容s:更改或替换字符串's/pattern/new/[flags]'把pattern替换成new,默认只替换一个可以指定flags为1/2/g改变替换数量...sed与grep比较grep查询命令比较简单,同时有高亮sed查询命令比较复杂,sed中p经常与-n合用,查询结果没有高亮sed可以一边进行查询,一边进行修改并打印(连用s)y进行一对一替换,a替换

    18120

    常见linux命令介绍-sed

    sed替换标记 标记 说明 g 表示行内全面替换。 p 表示打印行。 w 表示写入一个文件。 x 表示互换模板块中文本和缓冲区中文本。...y 表示把一个字符翻译为另外字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 sed元字符集 符号 说明 ^ 匹配开始,如:/^sed/匹配所有以sed开头。...\$ 匹配结束,如:/sed$/匹配所有以sed结尾。 . 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...[^] 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。 (..)...\< 匹配单词开始,如:/\<love/匹配包含以love开头单词。 \> 匹配单词结束,如/love\>/匹配包含以love结尾单词

    1.6K10

    sed与awk处理区间匹配问题总结---1

    这时候可以用sed n 命令和 b命令: “n” 命令表示:将当前行下一读入到pattern space, 从而提换掉了当前行内容....“b”命令表示:这是一个跳转指令,表示跳转到指定lable, 如果lable 没有指定,那么直接跳转到命令结束,也就是没有命令需要执行....根据上述对命令“n"讲解: /3/n, 表示当匹配到含有"3"这个时候, 执行命令n, 也就是把下一读入到pattern space 替换掉当前含有"3"这一,然后执行下一条命令"/6/...在“/3/,/6/" 这个范围中最后一出现了,对于"/3/n" 命令,显示匹配,所以匹配到了"b" 这个命令....理解到这里我们可以有下面的变种: [root@www ~]# seq 10| sed -n '/3/,/6/{/3/n;/6/ba;:a;s/6/9/;p}' #对匹配最后一进行替换.

    1.1K10

    Sed三剑客入门与进阶

    ; 读取下一直至文本结束,并将结果输出或者重定向存储输出; sed 软件有两个内置存储空间: 模式空间(pattern space) : 是处理时把当前处理存储在临时缓冲区中接着用sed命令处理操作模式空间...$ 匹配结束,如:/sed$/匹配所有以sed结尾。 . 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...[^] 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。...多条语句执行,表示删除空行并且以#开头 sed -e '/^$/d;/^#/d' fstab #^$表示首尾相连,也就是空行 显示操作n命令选项示例 描述:利用-n选项与p命令进行指定数据查看并且不显示已改变源文件那一...描述:替换文本字符串,采用s命令以及g进行全局替换,也可以采用c命令指定替换; ######### 替换(多行/单行) ############ #将text.txt文本第二替换成为"second

    3.1K10

    linux中sed命令总结

    sed替换标记 g # 表示行内全面替换。 p # 表示打印行。 w # 表示写入一个文件。 x # 表示互换模板块中文本和缓冲区中文本。...$ # 匹配结束,如:/sed$/匹配所有以sed结尾。 . # 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...[^] # 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。...\> # 匹配单词结束,如/love\>/匹配包含以love结尾单词。 x\{m\} # 重复字符x,m次,如:/0\{5\}/匹配包含5个0。...sed用法实例 替换操作:s命令 替换文本中字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换sed -n s/test/TEST

    3.2K20

    linux中最为常用三大文本(grep,sed,awk)处理工具

    默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中数据 3. sed 与 vi 区别 vi 采用是交互式文本编辑模式,你可以用键盘命令交互性地插入、删除或替换数据中文本...d :删除,因为是删除啊,所以 d 后面通常接任何咚咚; i :插入, i 后面可以接字串,而这些字串会在新出现(目前上一); p :打印,亦即将某个选择数据印出。...通常 p 会与参数 sed -n 一起运行~只输出被替换命令修改过 s :取代,可以直接进行取代工作. s 动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! 6....标记 功能 n 1~512 之间数字 表示指定要替换字符串出现第几次时才进行替换,例如,一中有 6 个 A,但用户只想替换第二个 A,这是就用到这个标记; g 对数据中所有匹配到内容进行替换...sed 123456789 /aaa/bbb/ccc 6.3 sed a 和 i 添加和插入 a 命令表示在指定后面附加一,i 命令表示在指定前面插入一, 它们基本格式完全相同 格式为

    6K10

    Sed..

    sed替换标记 g # 表示行内全面替换。 p # 表示打印行。 w # 表示写入一个文件。 x # 表示互换模板块中文本和缓冲区中文本。...$ # 匹配结束,如:/sed$/匹配所有以sed结尾。 . # 匹配一个非换行符任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。...[^] # 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed。...\> # 匹配单词结束,如/love\>/匹配包含以love结尾单词。 x\{m\} # 重复字符x,m次,如:/0\{5\}/匹配包含5个0。...sed用法实例 替换操作:s命令 替换文本中字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换sed -n ‘s/test/TEST

    1.6K20
    领券