Questions tagged «sed»

Sed(Stream EDitor)是POSIX环境的命令行编辑器。Sed根据编辑脚本处理一个或多个文件,并将结果写入标准输出。它是由贝尔实验室(Bell Labs)创建的,自70年代中期以来一直存在。

8
如何仅输出带有sed的捕获组?
有什么办法告诉sed只输出捕获的组吗?例如给出输入: This is a sample 123 text and some 987 numbers 和模式: /([\d]+)/ 我只能以反向引用的格式获得123和987输出吗?
277 regex  sed 

5
Perl,Python,AWK和sed有什么区别?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 只想知道它们之间的主要区别是什么?以及每种语言的功能(最好使用它)。 编辑:不是“ vs”。就像话题,只是信息。

8
在第一次比赛之后使用sed插入行
由于某种原因,我似乎无法找到一个简单的答案,此刻我处于时间紧迫的状态。我将如何使用sed命令在与特定字符串匹配的第一行之后插入文本选择行。我有 ... CLIENTSCRIPT="foo" CLIENTFILE="bar" 我想在CLIENTSCRIPT=导致... 的行后插入一行 CLIENTSCRIPT="foo" CLIENTSCRIPT2="hello" CLIENTFILE="bar"
244 shell  sed 

7
在目录和子目录中查找并替换为sed
我运行以下命令以查找并替换网站根目录中所有文件中所有出现的“ apple”并替换为“ orange”: find ./ -exec sed -i 's/apple/orange/g' {} \; 但是它不会通过子目录。 此命令有什么问题? 这是输出的一些行find ./: ./index.php ./header.php ./fpd ./fpd/font ./fpd/font/desktop.ini ./fpd/font/courier.php ./fpd/font/symbol.php

13
sed就地标志,可在Mac(BSD)和Linux上使用
是否sed可以在Linux和Mac上调用无需备份的todo就地编辑功能?虽然sed似乎需要OS X附带的BSD sed -i '' …,但GNU sedLinux发行版通常随附将引号解释为空的输入文件名(而不是备份扩展名),并且需要sed -i …而是。 是否有任何两种语法都适用的命令行语法,所以我可以在两个系统上使用相同的脚本?
237 linux  macos  sed  bsd 


8
如何用sed一次替换多个模式?
假设我有'abbc'字符串,我想替换: ab-> bc 公元前-> ab 如果我尝试两次替换,结果不是我想要的: echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g' abab 那么我可以使用什么sed命令来替换如下所示? echo abbc | sed SED_COMMAND bcab 编辑:实际上,文本可能有2种以上的模式,我不知道我需要多少替换。既然有一个回答说sed是一个流编辑器,并且它的替换很贪心,所以我认为我需要为此使用某种脚本语言。
231 replace  syntax  sed 


11
如何只显示匹配的行之后的下一行?
grep -A1 'blah' logfile 多亏了此命令,每行中都有'blah'的行,我得到了包含'blah'的行以及日志文件中下一行的输出。这可能很简单,但是我找不到一种方法来省略具有“ blah”的行,而仅在输出中显示下一行。
218 awk  sed  grep 

23
如何使用sed仅替换文件中的第一个匹配项?
我想在任何现有的#includes之前使用额外的include指令更新大量的C ++源文件。对于此类任务,我通常使用带有sed的小型bash脚本来重新写入文件。 如何sed仅替换文件中字符串的第一个匹配项而不是替换每个匹配项? 如果我用 sed s/#include/#include "newfile.h"\n#include/ 它替换了所有#includes。 也欢迎实现相同目标的替代建议。

15
如何在文件开头插入文本?
到目前为止,我已经能够找到如何在文件的开头添加一行,但这并不是我想要的。我会在一个例子中展示 档案内容 some text at the beginning 结果 <added text> some text at the beginning 类似,但是我不想用它创建任何新行... sed如果可能,我想这样做。
213 linux  bash  sed 

13
命令获取STDOUT的第n行
是否有任何bash命令可以让您获得STDOUT的第n行? 也就是说,某些东西 $ ls -l -rw-r--r--@ 1 root wheel my.txt -rw-r--r--@ 1 root wheel files.txt -rw-r--r--@ 1 root wheel here.txt 并做类似的事情 $ ls -l | magic-command 2 -rw-r--r--@ 1 root wheel files.txt 我意识到在编写要重用的脚本时这是一种不好的做法,但是在日常使用shell时,能够以这种方式过滤我的STDOUT对我很有用。 我也意识到这将是半平凡的命令(缓冲区STDOUT,返回特定行),但是我想知道是否存在一些标准的 shell命令来执行此操作,而无需我将脚本放到适当的位置。
210 bash  shell  sed  stdout 

10
sed中的环境变量替换
如果我从脚本运行以下命令: #my.sh PWD=bla sed 's/xxx/'$PWD'/' ... $ ./my.sh xxx bla 没事。 但是,如果我运行: #my.sh sed 's/xxx/'$PWD'/' ... $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' 我在教程中读到,要从shell替换环境变量,您需要停止操作,并对部分进行“引用”,$varname以便不直接替换该部分,这是我所做的,并且仅当该变量在紧接之前定义时才起作用。 我如何被s识别$var为shell中定义的环境变量?
202 linux  unix  shell  sed 

9
更改多个文件
以下命令正确更改了2个文件的内容。 sed -i 's/abc/xyz/g' xaa1 xab1 但是我需要做的是动态地更改几个这样的文件,我不知道文件名。我想写一个命令,从当前目录开始读取所有文件,xa*并且sed应该更改文件内容。
194 sed 

4
无效命令代码,尽管使用转义符,但使用sed
被迫对当前客户端使用CVS,并且为远程仓库更改了地址。我可以找到在本地代码中更改远程地址的唯一方法是递归搜索和替换。 但是,我希望使用sed命令可以工作: find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \; 我收到每个文件的错误: sed: 1: ".//file/path ...": invalid command code . 我试图逃脱sed比赛/替换中的句点,但这并不能解决任何问题。
187 bash  macos  sed 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.