分页: 1 / 2
sed命令的正则表达式的问题
发表于 : 2010-12-03 14:30
由 fp862
比如说我从网页上复制了一段代码,命名为 main.c
而代码的每行前都有行号,如
1. #include <stdio.h>
2. int main(int argc,char **argv)
3. {
.....
10. return 0;
11. }
我想用sed 命令替换掉前面的行号
cat main.c | sed 's/[0-9]\{1,2\}//' 是可以的,但会把所有的数字全给删了,return 0 也变return 了。
但如果我用
cat main.c | sed 's/^[0-9]\{1,2\}//' 却没有任何效果,
我想问的是,sed 命令中的 ^ 锁定行首功能是不是后面不能是正则表达式,只能是确定的字符串?
Re: sed命令的正则表达式的问题
发表于 : 2010-12-03 14:56
由 fp862
可惜那个文件已经被我删了。现在确实好了。楼上RP好。
Re: sed命令的正则表达式的问题
发表于 : 2010-12-03 16:55
由 trigger
用哪门子sed啊,
cut -f2- -d" " file
代码: 全选
1. #include <stdio.h>
2. int main(int argc,char **argv)
3. {
.....
10. return 0;
11. }
代码: 全选
cut -f2- -d" " lines2
#include <stdio.h>
int main(int argc,char **argv)
{
.....
return 0;
}
Re: sed命令的正则表达式的问题
发表于 : 2010-12-03 17:05
由 trigger
万一100行呢?{}就不行了
非用数字可以这样
sed 's/^[0-9]\+\. //' lines2
Re: sed命令的正则表达式的问题
发表于 : 2010-12-11 12:47
由 tusooa
这sed,还专义的,-r多好。
Re: sed命令的正则表达式的问题
发表于 : 2010-12-11 14:18
由 trigger
tusooa 写了:这sed,还专义的,-r多好。
写到半截不想再退回去,不如直接转义方便

Re: sed命令的正则表达式的问题
发表于 : 2010-12-11 21:05
由 tusooa
trigger 写了:tusooa 写了:这sed,还专义的,-r多好。
写到半截不想再退回去,不如直接转义方便

。。。
Re: sed命令的正则表达式的问题
发表于 : 2010-12-12 10:37
由 gzbao9999
代码: 全选
grep -Po '^\d+\.\K.*' main.c
Re: sed命令的正则表达式的问题
发表于 : 2010-12-12 13:06
由 trigger
tusooa 写了:trigger 写了:tusooa 写了:这sed,还专义的,-r多好。
写到半截不想再退回去,不如直接转义方便

。。。
alias不用,容易把自己绕进去
Re: sed命令的正则表达式的问题
发表于 : 2011-01-05 17:32
由 禁飞区
perl code:
while(<PASSWD>)
{
chomp;
@name=split /^[0-9]\./;
print "The lines are: @name\n";
}
Re: sed命令的正则表达式的问题
发表于 : 2011-01-06 11:42
由 realfiona
vim main.c
ctrl+v 选中第一列 按x
Re: sed命令的正则表达式的问题
发表于 : 2011-01-08 22:22
由 linwhwylb
代码: 全选
# awk 'gsub("[0-9]+. ","")' main.c
#include <stdio.h>
int main(int argc,char **argv)
{
return 0;
}
Re: sed命令的正则表达式的问题
发表于 : 2011-08-29 15:39
由 J.Wee.Han
Re: sed命令的正则表达式的问题
发表于 : 2011-08-29 15:59
由 eexpress
J.Wee.Han, 那是2楼被金主席勾引过去的 monaco 字体。假衬线。
trigger, 不用alias是对的。绕进去很容易的。

Re: sed命令的正则表达式的问题
发表于 : 2011-08-29 16:45
由 我就是我2

wa fen