Tag: sed

sed命令与-i选项在Mac上失败,但在Linux上工作

我已经成功地使用下面的sed命令在Linux中search/replace文本: sed -i 's/old_link/new_link/g' * 但是,当我在我的Mac OS X上尝试它时,我得到: “命令c期望\后跟文本” 我以为我的Mac运行一个正常的BASH shell。 这是怎么回事? 编辑: 根据@High Performance的说法,这是由于Mac sed具有不同的(BSD)风格,所以我的问题是如何在BSD sed复制这个命令? 编辑: 这是一个实际的例子,导致这个: sed -i 's/hello/gbye/g' *

如何在awk / sed中多次出现两个标记模式之间select行

使用awk或sed我怎样才能select两个不同的标记模式之间发生的线? 可能有多个部分标有这些模式。 例如:假设文件包含: abc def1 ghi1 jkl1 mno abc def2 ghi2 jkl2 mno pqr stu 而起始模式是abc和结束模式是mno所以,我需要的输出为: def1 ghi1 jkl1 def2 ghi2 jkl2 我使用sed来匹配一次模式: sed -e '1,/abc/d' -e '/mno/,$d' <FILE> 在sed或awk有什么方法可以重复执行,直到文件结束?

在sedreplace中使用斜杠

我正在编写一个shell脚本来创build一些configuration文件。 我也必须replace文件中的一些模式,一个模式应该被replace为一个path。 所以我的问题是:有没有一种方法来取代我的占位符webpathpath没有在斜线前面设置反斜杠? 也许有另一个工具可以做到这一点?

删除包含特定string的文本文件中的行

我将如何使用sed删除包含特定string的文本文件中的整行?

转义sedreplace模式的string

在我的bash脚本中,我有一个外部(从用户接收)string,我应该在sed模式中使用。 REPLACE="<funny characters here>" sed "s/KEYWORD/$REPLACE/g" 我怎样才能逃避$REPLACEstring,所以它会被sed安全地接受为字面replace? 注: KEYWORD是一个哑巴的子串,没有匹配等,它不是由用户提供。

如何select两种模式之间的线?

我有一个像下面的文件,我想打印两个给定的模式PAT1和PAT2之间的线。 1 2 PAT1 3 – first block 4 PAT2 5 6 PAT1 7 – second block PAT2 8 9 PAT1 10 – third block 我已经阅读了如何selectawk / sed中可能出现多次的两个标记模式之间的行,但我很好奇看到所有可能的组合,无论是否打印模式。 我怎样才能select两种模式之间的线?

如何使用sedreplace换行符(\ n)?

如何使用sed命令replace换行符( \n )? 我尝试失败: sed 's#\n# #g' file sed 's#^$# #g' file 我该如何解决?

sed命令在文件中查找和replace,覆盖文件不起作用,它清空文件

我想通过命令行在HTML文件上运行查找和replace。 我的命令看起来像这样: sed -es/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html > index.html 当我运行这个,然后看文件时,它是空的。 它删除了我的文件的内容。 当我再次恢复文件后运行这个: sed -es/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html stdout是文件的内容,查找和replace已经执行。 为什么发生这种情况?

用bash变量替换sed

尝试使用sed在文本文件中更改bash脚本中的值, sed 's/draw($prev_number;n_)/draw($number;n_)/g' file.txt > tmp 这将在for循环。 不知道为什么它不工作。 有什么建议么?

使用变量替换shell脚本中的字符串

我使用下面的代码来替换shell脚本中的字符串。 echo $LINE | sed -e 's/12345678/"$replace"/g' 但是它正在被替换为$replace而不是该变量的值。 有谁可以告诉出了什么问题?