LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: tahaomei

shell命令中,行前如何添加一字符串?

[复制链接]
发表于 2007-1-18 16:53:50 | 显示全部楼层
a.out后边都应该加以个$巴。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-18 16:55:56 | 显示全部楼层
Post by peter_huang
这样符合要求了:


  1. sed -n -e 's/^/cd /g;s/a.out//g;p' filename | awk '{printf("%s\n%s\n",$0,"nohup ./a.out &")}'
复制代码



你的好复杂啊

sed -e 's/^/cd /g' -e 's/a.out/\nnohup .\/a.out \&/g'

这个我测试了,可以通过。

但是为什么a.out里的.前不加转义符\呢?
回复 支持 反对

使用道具 举报

发表于 2007-1-18 17:00:55 | 显示全部楼层
严格说要第一个.前面加一个转义符,这里例子中没关系。
回复 支持 反对

使用道具 举报

发表于 2007-1-18 17:01:10 | 显示全部楼层
.(dot)不是特殊符号啊。
俺看了那个,语义上应该是正确的,但是在我的机器上它就是俺贴的那个结果,奇异啊。

也许是sed版本不一致,那个\n被理解为n了,而不是换行。

另外sed里面的a\命令俺用不起来,也许真是sed的版本问题吧,
要不这样也行阿:

sed -n -e 's/^/cd /g;s/a.out//g;a\nohup ./a.out \&;p'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-18 17:26:04 | 显示全部楼层
Post by peter_huang
字母1。
\1是第一个匹配,就是(a.out)
不过他的方法在我的机器上有问题,输出是这样的:


  1. cd /export/home/pengx/testsh/w_4.2588nm/p_2.50e+01kpa/nnohup ./a.out &
  2. cd /export/home/pengx/testsh/w_4.2588nm/p_4.00e+01kpa/nnohup ./a.out &
  3. cd /export/home/pengx/testsh/w_4.2588nm/p_5.50e+01kpa/nnohup ./a.out &
  4. cd /export/home/pengx/testsh/w_4.2588nm/p_7.00e+01kpa/nnohup ./a.out &
复制代码


这个结果不对的。



字母1????怎么你打出来的像数字1啊
回复 支持 反对

使用道具 举报

发表于 2007-1-18 17:29:17 | 显示全部楼层
呵呵,笔误,数字1
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表