+ -
当前位置:首页 → 问答吧 → 如何删除第一个( 到第一个 )之间的所有字符?

如何删除第一个( 到第一个 )之间的所有字符?

时间:2011-05-17

来源:互联网

本帖最后由 kean_ca 于 2011-05-17 10:50 编辑

(abc)
aa (a(d)xe)) (b) (c)fff
asdf(aakk
e)zz (ala)oe 这是inputfile 的内容,怎样才能得到

aa xe)) (b) (c)fff
asdf(aakk
e)zz oe
求解答!!!

ps. 用sed把每一行第一对小括号里的字符删掉

作者: kean_ca   发布时间: 2011-05-17

回复 kean_ca


    没看明白

作者: liion631818   发布时间: 2011-05-17

sed -r 's/\([^)]*\)//' file

作者: where27   发布时间: 2011-05-17

回复 liion631818


    我刚改了一下,就是要把每一行从第一个(到第一个)的所有字符删掉

作者: kean_ca   发布时间: 2011-05-17

回复 where27


    错误呢~~~

作者: kean_ca   发布时间: 2011-05-17

楼主贴的结果不对吧?
按你的要求,应该得到下面的输出才对吧?
  1. [10:24:23-Bob@hzling20:~/test]-(1013)No.13->$ cat urfile
  2. (abc)
  3. aa (a(d)xe)) (b) (c)fff
  4. asdf(aakk
  5. e)zz (ala)oe
  6. [10:24:25-Bob@hzling20:~/test]-(1014)No.14->$ sed -r 's/\([^)]*\)//g' urfile

  7. aa xe))  fff
  8. asdf(aakk
  9. e)zz oe
复制代码

作者: xiaopan3322   发布时间: 2011-05-17

回复 kean_ca


    是语法错误还是?你的环境是什么,我用的是redhat5下的GNU sed version 4.1.5

作者: where27   发布时间: 2011-05-17

回复 kean_ca


    try:
  1. sed -e 's/\(.\).*\1//' 1.txt
复制代码

作者: liion631818   发布时间: 2011-05-17

回复 xiaopan3322


    没错啊~~每一行只删出第一次的

作者: kean_ca   发布时间: 2011-05-17

回复 where27


    因为是新手,环境是ubuntu10.10

作者: kean_ca   发布时间: 2011-05-17