我正在尝试使用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
乔],约翰”,彼得”,
我很茫然,不明白这里出了什么问题。
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