我在file.txt中有这样的数据:
1234-abca-dgdsf-kds-2;abc dfsfds 2
123-abcdegfs-sdsd;dsfdsf dfd f
12523-cvjbsvndv-dvd-dvdv;dsfdsfpage我想在"-“之后替换字符串,直到";",这样我就得到:
1234;abc dfsfds 2
123;dsfdsf dfd f
12523;dsfdsfpage我试过命令:
sed -e "s/-.*;/;" file.txt但它给了我以下错误:
sed命令混淆
为什么会发生这种情况?
发布于 2013-10-15 18:33:49
这应该是可行的:
sed 's/-.*;/;/g' file > newFile发布于 2017-08-31 14:15:13
sed替换命令定义为(来源):
S/REGEXP/替换/标志‘ (替代)将正则表达式与模式空间的内容匹配。如果找到,用替换替换匹配的字符串。
然而,你是在说:
sed "s/-.*;/;"这就是:
sed "s/REGEXP/REPLACEMENT"因此,在表达式末尾缺少一个"/“。只需将其添加如下:
sed "s/-.*;/;/"
# ^发布于 2013-10-15 18:33:57
在sed命令末尾缺少一个斜杠:
应该是"s/-.*;/;/"
https://stackoverflow.com/questions/19388443
复制相似问题