sed命令的正则表达式的问题

sh/bash/dash/ksh/zsh等Shell脚本
fp862
帖子: 43
注册时间: 2009-11-07 21:25
送出感谢: 0
接收感谢: 0

sed命令的正则表达式的问题

#1

帖子 fp862 » 2010-12-03 14:30

比如说我从网页上复制了一段代码,命名为 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 命令中的 ^ 锁定行首功能是不是后面不能是正则表达式,只能是确定的字符串?
头像
pocoyo
论坛版主
帖子: 25878
注册时间: 2008-03-25 15:49
来自: 谁知道?
送出感谢: 5 次
接收感谢: 9 次
联系:

Re: sed命令的正则表达式的问题

#2

帖子 pocoyo » 2010-12-03 14:45

都正常.
附件
shot337144446.png
fp862
帖子: 43
注册时间: 2009-11-07 21:25
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#3

帖子 fp862 » 2010-12-03 14:56

可惜那个文件已经被我删了。现在确实好了。楼上RP好。
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#4

帖子 trigger » 2010-12-03 16:55

用哪门子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;
}
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#5

帖子 trigger » 2010-12-03 17:05

万一100行呢?{}就不行了
非用数字可以这样
sed 's/^[0-9]\+\. //' lines2
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: sed命令的正则表达式的问题

#6

帖子 tusooa » 2010-12-11 12:47

这sed,还专义的,-r多好。

代码: 全选

] ls -ld //
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#7

帖子 trigger » 2010-12-11 14:18

tusooa 写了:这sed,还专义的,-r多好。
写到半截不想再退回去,不如直接转义方便 :em04
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: sed命令的正则表达式的问题

#8

帖子 tusooa » 2010-12-11 21:05

trigger 写了:
tusooa 写了:这sed,还专义的,-r多好。
写到半截不想再退回去,不如直接转义方便 :em04
。。。

代码: 全选

alias sed='sed -r'

代码: 全选

] ls -ld //
gzbao9999
帖子: 627
注册时间: 2008-11-08 18:34
送出感谢: 0
接收感谢: 1 次

Re: sed命令的正则表达式的问题

#9

帖子 gzbao9999 » 2010-12-12 10:37

代码: 全选

grep -Po '^\d+\.\K.*' main.c
气血鼓荡,身体发胀,偶飘上头,三时舒畅
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#10

帖子 trigger » 2010-12-12 13:06

tusooa 写了:
trigger 写了:
tusooa 写了:这sed,还专义的,-r多好。
写到半截不想再退回去,不如直接转义方便 :em04
。。。

代码: 全选

alias sed='sed -r'
alias不用,容易把自己绕进去
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
禁飞区
帖子: 7
注册时间: 2010-12-15 8:48
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#11

帖子 禁飞区 » 2011-01-05 17:32

perl code:

while(<PASSWD>)
{
chomp;
@name=split /^[0-9]\./;
print "The lines are: @name\n";
}
头像
realfiona
帖子: 137
注册时间: 2007-11-20 10:58
来自: Hangzhou, China
送出感谢: 0
接收感谢: 0
联系:

Re: sed命令的正则表达式的问题

#12

帖子 realfiona » 2011-01-06 11:42

vim main.c
ctrl+v 选中第一列 按x
头像
linwhwylb
帖子: 78
注册时间: 2009-07-14 10:26
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#13

帖子 linwhwylb » 2011-01-08 22:22

代码: 全选

# awk 'gsub("[0-9]+. ","")' main.c  
#include <stdio.h>
int main(int argc,char **argv)
{
return 0;
}
Ubuntu philosophy:that software should be available free of charge, that software tools should be usable by people in their local language, and that people should have the freedom to customize and alter their software in whatever way they need.
J.Wee.Han
帖子: 7
注册时间: 2008-05-09 21:54
送出感谢: 0
接收感谢: 0

Re: sed命令的正则表达式的问题

#14

帖子 J.Wee.Han » 2011-08-29 15:39

这个是什么字体
pocoyo 写了:都正常.
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: sed命令的正则表达式的问题

#15

帖子 eexpress » 2011-08-29 15:59

J.Wee.Han, 那是2楼被金主席勾引过去的 monaco 字体。假衬线。

trigger, 不用alias是对的。绕进去很容易的。 :em04
● 鸣学
回复

回到 “Shell脚本”