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

GNU sed - 查找或替换空格或新行.为什么这不起作用?v3.02 vs v4.2

GNU sed 是一种在文本文件中查找和替换文本的操作系统命令行工具。它支持在文件中查找和替换文本,以及许多其他有用的功能,例如在文件中查找和替换空格或新行。

为什么这不起作用? 如果你使用 GNU sed 查找或替换空格或新行时,但没有成功,可能有以下原因:

  1. 模式与目标文件不匹配:确保你使用的模式与目标文件相匹配。例如,如果你的目标文件是纯文本文件,则不应使用 \n 作为分隔符,而应使用 \r
  2. 格式指定错误:在 sed 命令中,确保你正确地指定了输入文件、输出文件和任何其他选项,例如 -i(直接修改输入文件)。
  3. 文件已打开且只读:如果你尝试在只读文件上使用 sedsed 会自动返回失败。在这种情况下,你需要先关闭文件,然后重新打开它以进行修改。
  4. 权限问题:确保你以适当的身份(如管理员或 root 用户)运行 sed 命令。
  5. 目标文件格式不支持:对于某些文件类型,例如压缩文件或只读文件,sed 可能无法正确处理。

要解决此问题,请尝试检查上述可能的原因,并相应地修改你的 sed 命令。

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

相关·内容

Linux常用命令09 - sed

在处理文本文件时,通常需要在一个多个文件中查找替换文本字符串。 sed 是一个流编辑器。 它可以对文件和输入流(如管道)执行基本的文本操作。...使用 sed,您可以搜索、查找替换、插入和删除单词和。 它支持基本的和扩展的正则表达式,允许您匹配复杂的模式。 接下来, 我将使用 sed 查找替换字符串。...我还将向您展示如何执行递归搜索和替换查找替换字符串sed sed 有几个版本,它们之间有一些函数上的差异。...默认情况下一地读取文件,只更改第一次出现的SEARCH_REGEX,当提供替换标志时,所有出现的情况都将被替换 INPUTFILE 要在其上运行命令的文件名 最好在参数周围加上引号,这样 shell...这可以通过使用 find grep 等命令递归地查找目录中的文件并将文件名管道化为 sed 来实现。 下面的命令将递归搜索当前工作目录文件夹中的文件,并将文件名传递给 sed。 find .

2K30

《Linux与unix Shell编程指南》 总结

file2 查找更改时间比文件file1但比文件file2旧的文件。 -type 查找某一类型的文件,诸如: b - 块设备文件。 d - 目录。 c - 字符设备文件。...在匹配式样的行前、后各插入一空行 sed '/hello/{x;p;x;G;}' awk '{ if(/hello/) printf("\n\%s\n\n", 二、文本的替换 1、在每一查找到...1.22 更高版本 # 将每一前导的“空白字符”(空格,制表符)删除 # 使之左对齐 sed 's/^[ \t]*//' # 见本文末尾关于'\t'用法的描述 # 将每一拖尾的...-e 's/∗∗\1/\1/' # 方法2 # 在每一查找字串“foo”,并将找到的“foo”替换为“bar” sed 's/foo/bar/' # 只替换每一中的第一个...段落间以(一多行)空行分隔。GNU sed使用 # 字元“\v”来表示垂直制表符,这里用它来作为换行符的占位符??当然你也可以 # 用其他未在文件中使用的字符来代替它。 sed '/.

5.5K30

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

c\ 把选定的改为的文本。 d 删除,删除选择的。 D 删除模板块的第一。 s 替换指定字符,字符间可用/@#隔开 h 拷贝模板块的内容到内存中的缓冲区。...n 读取下一个输入行,用下一个命令处理而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个,改变当前行号码。 p 打印模板块的。...表示对文中第三及以下行起作用 = 打印当前行号码。 # 把注释扩展到下一个换行符以前。 3.5 替换标记 g 表示行内全面替换。 p 表示打印行。 w 表示把写入一个文件。...* 匹配0个多个字符,如:/*sed/匹配所有模板是一个多个空格后紧跟sed。 [] 匹配一个指定范围内的字符,如/[sS]ed/匹配sedSed。...txt 666.txt #替换123.txt、666.txt内的第二往后每次增加两的bck为sh,每行全面替换 给文件名\单词前统一替换加前缀后缀前后缀 需用到元字符集:^ 匹配开始,如

9.1K21

Linux文本处理详细教程

我对shell脚本使用的原则是命令单行书写,尽量不要超过2; 如果有更为复杂的任务需求,还是考虑python吧; 1.1. find 文件查找 查找txt和pdf文件: find . \( -name...grep match_patten file // 默认访问匹配 常用参数 -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c...$wc -l file // 统计行数 $wc -w file // 统计单词数 $wc -c file // 统计字符数 1.10. sed 文本替换利器 首处替换 sed 's/text/replace_text.../' file //替换每一的第一处匹配的text 全局替换 sed 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: sed...\1/' 双引号求值 sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' 当使用双引号时,我们可以在sed样式和替换字符串中指定变量;

4.3K20

Shell四剑客实操案例

n[c] #查长度为n块[n字节]的文件;-perm #按执行权限来查找;-user username #按文件属主来查找; Find工具-name参数案列: find /data/ -name...SED是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑,标准输入可以来自键盘输入、文本重定向、字符串、变量,甚至来自于管道的文本,与VIM编辑器类似,它一次处理一内容,Sed可以编辑一个多个文件...: 替换jfedu.txt文本中old为new: sed ‘s/old/new/g’ jfedu.txt 打印jfedu.txt文本第一至第三sed -n ‘1,3p’ jfedu.txt...,模式空间请空;然后重复刚才的动作,文件中的的一被读入,直到文件处理完备。...,AWK经过改进生成的的版本有Nawk、Gawk,一般Linux默认为Gawk,Gawk是 AWK的GNU开源免费版本。

2.1K21

Linux 三大马车——grep sed awk

匹配之前项0次1次 eg: 'f\?...命令: a 在指定的后面增加一 i 在指定的前面增加一 d 删除指定 c 改变指定的内容 s s/查找/替换/g s/查找/替换/1 s/查找/替换/2 y 把指定的检索出的内容进行一对一的转换...'2c Hi' 把第二的内容改成 Hi PS:定位的行数是指源文件的行数 而不是修改过的 sed 's/is/IS/g' sed 's/is/IS/2' sed 's/is/IS/' sed '...1~3s/is/IS/' 处理第1、4、7、10 常运用于fq文件 sed '/www/ s/is/IS/' 处理能匹配到www的 查: sed -n '2~4p' 查找并输出某些 sed -n...'/关键词/p' #根据关键词进行查找 sed -n 's/ee/EE/p' #输出的同时被处理 s和y的区别: s 是将查找到的内容替换掉 y 是一一对应替换 (多用于输出互补碱基) 如何获得反向互补的序列

1.2K00

Sed 文本编辑器

安装 如果你使用的是 Linux、BSD macOS,那么你已经安装了 GNU BSD 版的 sed。这是两个不同的原始 sed 命令的重新实现,虽然它们很相似,但也有一些小的区别。...在 Windows 上,你可以用 Chocolatey 来安装 GNU sedSed 如何工作 sed 应用程序一次只处理一。...在 GNU sed 中,你可以选择多行(例如,sed '1,$p' 打印第一和最后一)。 反转 任何数字位置的选择,你都可以用感叹号(!)字符反转。...模式匹配 你可以把模式匹配想象成文字处理器浏览器中的 查找 操作。你提供一个词(一个 模式 ),然后选择了结果。...学习 Sed 你可以用 sed 做的事情比本文所解释的多得多。我甚至还没有涉及到分支(b)、测试(t)、保留空格(H)和许多其他功能。

1.1K00

Linux之文件管理及文本处理

查找目录及文件 find/locate 搜寻文件目录: $find ./ -name "core*" | xargs file 查找目标文件夹中是否有obj文件: $find ./ -name...Bash快捷输入删除 快捷键: Ctl-U 删除光标到首的所有字符,在某些设置下,删除全行 Ctl-W 删除当前光标到前边的最近一个空格之间的字符 Ctl-H backspace...$wc -l file // 统计行数 $wc -w file // 统计单词数 $wc -c file // 统计字符数 3.10. sed 文本替换利器 首处替换 sed 's.../text/replace_text/' file //替换每一的第一处匹配的text 全局替换 sed 's/text/replace_text/g' file 默认替换后,输出替换后的内容...,如果需要直接替换原文件,使用-i: sed -i 's/text/repalce_text/g' file 移除空白 sed '/^$/d' file 变量转换 已匹配的字符串通过标记

1.7K20

linux实战(一)

在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。...如果用egrepgrep -E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。 sed 作用 sed 常常用于一整个的处理。sed是一种在线编辑器,它一次处理一内容。...此例中,对第1到第20进行处理,you被保存为标签1,如果发现youself,则替换为your。  &      保存查找串以便在替换串中引用 s/my/**&**/  符号&代表查找串。...$ sed 's#10#100#g' example 不论什么字符,紧跟着s命令的都被认为是的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。...awk是一个强大的文本分析工具,相对于grep的查找sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。

2.2K10

你应该学习正则表达式

大多数代码编辑器支持基于Regex的查找/替换操作。一个格式正确的Regex替换可以将繁琐的需要半小时忙碌的工作变成一个漂亮的Regex重构魔法。...几乎每个文本编辑器都支持基于Regex的查找替换。 以下是一些受欢迎的编辑器指南。...——https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Replace.html 5.0 – 提取单行CSS注释 如果我们想要查找...我们将介绍如何使用grep查找特定文件,以及使用sed替换文本文件内容。 7.0 – 真实示例 – 用grep匹配图像文件 我们将定义另一个基本的Regex,这次是用于匹配图像文件。 ?...要在MacOS上使用sed,并具有体面的正则表达式支持,我建议使用brew install gnu-sed安装sedGNU实现,然后从命令行使用gsed而不是sed

5.3K20

Linux好用的管道命令

但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将作为一个域分隔符;操作符**和**=不能代替^和^=;fflush无效。...-r:sed的操作使用的是扩展型正则表达式的语法(默认是基础正则表达式语法) 操作说明 a :新增, a 的后面可以接字串,而这些字串会在的一出现(目前的下一)~ c :取代, c 的后面可以接字串...8)数据的查找替换 除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的查找替换<。...❝sed查找替换的与 vi 命令类似,语法格式如下: ❞ sed 's/要被取代的字串/的字串/g'将 testfile 文件中每行第一次出现的 oo 用字符串 kk 替换,然后将该文件内容输出到标准输出...: sed -e 's/oo/kk/' testfile g标识符表示全局查找替换,使 sed 对文件中所有符合的字符串都被替换,修改后内容会到标准输出,不会修改原文件: sed -e 's/oo/kk

9.3K20

Shell入门指南

流编辑 Sed流编辑结合正则表达式可以方便的对文本文件进行查询、修改、删除、增加等操作 注意:osx系统自带的sed命令和标准的gnu-sed使用方式上有些差别,所以以下篇幅所谈论到的sed都是标准的gnu-sed...*/gnu-sed/')" if [[ $(expr "$which_sed" : '....*/gnu-sed/') -gt 0 ]]; then echo "检测到使用gnu sed" else if [ !...d 删除 sed pattern/replacement 查找对应的模式和匹配模式的替换内容 sed flag 有4种可用的替换标记: 数字,表明新文本将替换第几处模式匹配的地方; g,表明新文本将会替换所有匹配的文本...replacement中变量的处理方式,使用双引号、单引号双重包含,使用flag为g表示全部替换 grep ${original_class_name} -rl ${pbxproj_dir},grep命令查找

1.2K30

Linux Shell 文本处理工具集锦

我对shell脚本使用的原则是命令单行书写,尽量不要超过2; 如果有更为复杂的任务需求,还是考虑python吧; find 文件查找 查找txt和pdf文件 find . \( -name "*.txt...match_patten file // 默认访问匹配 常用参数 -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename...' file //替换每一的第一处匹配的text 全局替换 seg 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: seg...\1/' 双引号求值 sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' 当使用双引号时,我们可以在sed样式和替换字符串中指定变量;...} statements2 END{ statements } ' 工作方式 1.执行begin中语句块; 2.从文件stdin中读入一,然后执行statements2,重复这个过程,直到文件全部被读取完毕

3.2K70

Linux文本处理工具,看这篇就够了。

、awk; 提供的例子和参数都是最常用和最为实用的; 对shell脚本使用的原则是命令单行书写,尽量不要超过2; 如果有更为复杂的任务需求,还是考虑python吧; 01 find 文件查找 1 查找...match_patten file // 默认访问匹配 常用参数: -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename.../' file //替换每一的第一处匹配的text 全局替换 seg 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: seg...sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' 当使用双引号时,我们可以在sed样式和替换字符串中指定变量; eg:p=pattenr...{ statements } ' 工作方式 1.执行begin中语句块; 2.从文件stdin中读入一,然后执行statements2,重复这个过程,直到文件全部被读取完毕; 3.执行end语句块;

4.4K10

史上最全的 Linux Shell 文本处理工具集锦,快收藏!

、awk; 提供的例子和参数都是最常用和最为实用的; 对shell脚本使用的原则是命令单行书写,尽量不要超过2; 如果有更为复杂的任务需求,还是考虑python吧; 01 find 文件查找 1 查找...match_patten file // 默认访问匹配 常用参数: -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename.../' file //替换每一的第一处匹配的text 全局替换 seg 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: seg...sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' 当使用双引号时,我们可以在sed样式和替换字符串中指定变量; eg:p=pattenr...{ statements } ' 工作方式 1.执行begin中语句块; 2.从文件stdin中读入一,然后执行statements2,重复这个过程,直到文件全部被读取完毕; 3.执行end语句块;

4K50

搞定 Linux Shell 文本处理工具

对shell脚本使用的原则是命令单行书写,尽量不要超过2; 如果有更为复杂的任务需求,还是考虑python吧. 1、find 文件查找 查找txt和pdf文件 find . ( -name "*....match_patten file // 默认访问匹配 常用参数: -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename...wc -l file // 统计行数 wc -w file // 统计单词数 wc -c file // 统计字符数 9、sed 文本替换利器 首处替换 seg 's/text/replace_text.../'file //替换每一的第一处匹配的text 全局替换 seg 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i:...} statements2 END{ statements } ' 工作方式 1.执行begin中语句块; 2.从文件stdin中读入一,然后执行statements2,重复这个过程,直到文件全部被读取完毕

1.7K10

搞定 Linux Shell 文本处理工具的操作命令

;对shell脚本使用的原则是命令单行书写,尽量不要超过2;如果有更为复杂的任务需求,还是考虑python吧. 1、find 文件查找 查找txt和pdf文件 find . ( -name "*.txt...match_patten file // 默认访问匹配 常用参数: -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename.../'file   //替换每一的第一处匹配的text 全局替换 seg 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: seg...sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/'当使用双引号时,我们可以在sed样式和替换字符串中指定变量; p=patten r... } ' 工作方式 1.执行begin中语句块; 2.从文件stdin中读入一,然后执行statements2,重复这个过程,直到文件全部被读取完毕; 3.执行end语句块; print 打印当前行

2.4K20

搞定Linux Shell文本处理工具,看完这篇集锦就够了

; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2; 如果有更为复杂的任务需求,还是考虑python吧; 1、find 文件查找 查找txt和pdf文件 find . \( -name...match_patten file // 默认访问匹配 常用参数 -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c "text" filename.../' file //替换每一的第一处匹配的text 全局替换 seg 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i...\([0-9]\)/\1/' 双引号求值 sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' 当使用双引号时,我们可以在sed样式和替换字符串中指定变量...} statements2 END{ statements } ' 工作方式 1.执行begin中语句块; 2.从文件stdin中读入一,然后执行statements2,重复这个过程,直到文件全部被读取完毕

6.2K41
领券