在行首插入sed会产生错误

问题描述 投票:0回答:1

我正在尝试使用sed修改文件,但收到我不理解的错误:

sed:-e表达式#1,字符0:无先前的正则表达式

命令:

sed -e 's/^/"asset\//' example.txt

示例文件:

joe
john
peter

sed来自msys2:

which sed

sed是外部文件:C:\ msys64 \ usr \ bin \ sed.exe

在每行末尾添加文本时,以下功能将按预期工作:

sed -e 's/$/",/' y.txt

乔],约翰”,彼得”,

我很茫然,不明白这里出了什么问题。

sed quotes msys2
1个回答
1
投票

EDIT(cygwin上的解决方案:]尝试在刚刚在系统上测试过的cygwin sed上执行以下操作,并且在命令提示符下工作正常。在将'单引号与sed一起使用时,我得到与OP相同的错误,但是在"中使用sed时,我可以得到sed的正确行为(预期是,要添加"每行之前)

sed -E "s/^/\"/"  Input_file


EDIT2(引用了Tripleee的注释的引用):您还可以使用命令file将sed命令保存到名为s/^/\"/的文件中,然后通过运行,测试来运行sed代码cygwin sed成功。

sed -f file Input_file


我没有Cygwin,因此无法对其进行测试,尽管您提到的解决方案对BASH来说效果很好。您能否一次尝试采用另一种方法?我刚刚也在cygwin上测试了该解决方案,并且在那儿工作得很好(编辑评论)。

sed 's/\(.*\)/"\1/' Input_file
© www.soinside.com 2019 - 2024. All rights reserved.