标签: sed

转义字符串以获取sed替换模式

在我的bash脚本中,我有一个外部(从用户接收)字符串,我应该在sed模式中使用它.

REPLACE="<funny characters here>"
sed "s/KEYWORD/$REPLACE/g"
Run Code Online (Sandbox Code Playgroud)

如何逃避$REPLACE字符串,以便sed作为文字替代品安全地接受?

注意:KEYWORD是一个没有匹配等的哑子串.它不是由用户提供的.

string escaping sed

296
推荐指数
6
解决办法
27万
查看次数

使用Sed替换包含字符串的整行

我有一个文本文件,其中有一个特定的行

sometext sometext sometext TEXT_TO_BE_REPLACED sometext sometext sometext
Run Code Online (Sandbox Code Playgroud)

我需要替换上面的整行

This line is removed by the admin.
Run Code Online (Sandbox Code Playgroud)

搜索关键字是 TEXT_TO_BE_REPLACED

我需要为此编写一个shell脚本.我怎样才能实现这个目的sed

string shell sed

296
推荐指数
5
解决办法
47万
查看次数

使用-i选项的sed命令在Mac上失败,但适用于Linux

我已成功使用以下sed命令在Linux中搜索/替换文本:

sed -i 's/old_link/new_link/g' *
Run Code Online (Sandbox Code Playgroud)

但是,当我在Mac OS X上试用它时,我得到:

"命令c期望\后跟文本"

我以为我的Mac运行普通的BASH shell.这是怎么回事?

编辑:

根据@High Performance,这是由于Mac sed具有不同的(BSD)风格,因此我的问题是如何在BSD中复制此命令sed

编辑:

以下是导致此问题的实际示例:

sed -i 's/hello/gbye/g' *
Run Code Online (Sandbox Code Playgroud)

linux macos bash sed

271
推荐指数
9
解决办法
17万
查看次数

在MacOS上用sed替换逗号换行?

我有一个以逗号分隔的id文件.我正在尝试用新行替换逗号.我试过了:

sed 's/,/\n/g' file
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我错过了什么?

unix macos sed

264
推荐指数
8
解决办法
28万
查看次数

sed编辑文件到位

我试图找出是否可以在单个sed命令中编辑文件,而无需手动将已编辑的内容流式传输到新文件中,然后将新文件重命名为原始文件名.我尝试了这个-i选项,但我的Solaris系统说这-i是一个非法的选择.有不同的方式吗?

unix solaris sed

264
推荐指数
9
解决办法
24万
查看次数

如何仅使用sed输出捕获的组?

有没有办法告诉sed输出只捕获的组?例如,给定输入:

This is a sample 123 text and some 987 numbers
Run Code Online (Sandbox Code Playgroud)

和模式:

/([\d]+)/
Run Code Online (Sandbox Code Playgroud)

我可以通过反向引用格式化的方式获得123和987输出吗?

regex sed

258
推荐指数
8
解决办法
38万
查看次数

Perl,Python,AWK和sed有什么区别?

只是想知道它们之间的主要区别是什么?和每种语言的力量(最好使用它).

编辑:这不是"对战" 喜欢话题,只是信息.

python perl awk language-comparisons sed

246
推荐指数
5
解决办法
7万
查看次数

使用sed在第一次匹配后插入行

出于某种原因,我似乎无法找到一个直截了当的答案,而且我现在有点紧张.在使用该sed命令匹配特定字符串的第一行之后,如何插入选择行文本.我有 ...

CLIENTSCRIPT="foo"
CLIENTFILE="bar"
Run Code Online (Sandbox Code Playgroud)

我想在行之后插入一行,CLIENTSCRIPT=导致......

CLIENTSCRIPT="foo"
CLIENTSCRIPT2="hello"
CLIENTFILE="bar"
Run Code Online (Sandbox Code Playgroud)

shell sed

228
推荐指数
6
解决办法
25万
查看次数

在目录和子目录中查找并替换sed

我运行此命令在我的站点的根目录中的所有文件中查找并替换所有出现的'apple'和'orange':

find ./ -exec sed -i 's/apple/orange/g' {} \;
Run Code Online (Sandbox Code Playgroud)

但它不会通过子目录.

这个命令有什么问题?

编辑:这是find ./命令的一些输出行:

./index.php
./header.php
./fpd
./fpd/font
./fpd/font/desktop.ini
./fpd/font/courier.php
./fpd/font/symbol.php
Run Code Online (Sandbox Code Playgroud)

linux command-line replace sed

224
推荐指数
4
解决办法
22万
查看次数

使用sed从文本文件中删除特定的行号?

我想从文件中删除一个或多个特定的行号.我怎么用sed这样做?

unix sed line-numbers

222
推荐指数
5
解决办法
24万
查看次数