免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2876 | 回复: 17
打印 上一主题 下一主题

请教一个文本处理问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-29 15:46 |只看该作者 |正序浏览
源文件txt内容如下:
root@mango:~/scripts# cat txt
中国  (中国)
世界
美国
(美国)
加拿大
英国
俄罗斯
(俄罗斯)
阿富汗

希望处理后的结果为:(即将带括号的行和上一行合并)
root@mango:~/scripts# cat txt
中国  (中国)
世界
美国(美国)
加拿大
英国
俄罗斯(俄罗斯)
阿富汗

问: 如何用简单的命令实现,为什么 sed 's/$^(/(/g'  不能达到目的呢

论坛徽章:
0
18 [报告]
发表于 2012-04-07 18:43 |只看该作者
  1. vim -c '%s/\n(/ (/g' -c 'wq' txt
复制代码

论坛徽章:
0
17 [报告]
发表于 2012-03-30 12:47 |只看该作者
回复 16# Meppo


    找你喜欢的语言去. 感觉都蹩脚的语法和流程怎么可能用得顺手. 我是觉得 sed 干净才愿意瞎想. 你要是有相同的感觉就去翻手册

论坛徽章:
0
16 [报告]
发表于 2012-03-30 10:23 |只看该作者
hbmhalley 发表于 2012-03-30 09:35
回复 10# Meppo


  成功了... !!!  不过后面的:t 是什么意思呢?   我一个个加...  不加的时候 只实现了第一个 () 的结合 , 加上:t没反应   加上 就复制了后面的"( ) "行  再加上   后就突然得出结果了...

  大牛 们 , 回复贴子 也不要老是这么简短行么. 授人以鱼 不如授人以渔啊!   对于有些不想知道原因 只想知道怎么改的还好, 但是像我这种 一看到新鲜就想知道原因的 很难受啊~  sed我也看过一些 没看过这种用法...    咋感觉白看了?  

论坛徽章:
0
15 [报告]
发表于 2012-03-30 09:35 |只看该作者
回复 10# Meppo


    你拆开看看他说哪是多余字符

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
14 [报告]
发表于 2012-03-30 09:34 |只看该作者
Meppo 发表于 2012-03-30 09:22
可以实现  但是看不懂... 为什么中间有两个"(" 还能匹配成功...  解释下咯!!! @=  是什么意思!


@= 的解释 :h \@=
:s 的解释 :h :s

论坛徽章:
0
13 [报告]
发表于 2012-03-30 09:22 |只看该作者
timespace 发表于 2012-03-30 08:22
vi也可以proc.vim内容为


  可以实现  但是看不懂... 为什么中间有两个"(" 还能匹配成功...  解释下咯!!! @=  是什么意思!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
12 [报告]
发表于 2012-03-30 09:13 |只看该作者
本帖最后由 MMMIX 于 2012-03-30 09:14 编辑
timespace 发表于 2012-03-30 08:22
vi也可以proc.vim内容为


编辑命令完全可以用多个 -c 写到命令行上,没有必要创建个 Vim 脚本。

另外,是 Vim,Vi 不支持这个的。许多人估计都没有用过 Vi,而在 Linux 上 vi 就是个到 vim 的链接,所以就以为 Vi 和 Vim 没有什么区别,其实真正用了就会发现,Vim 的功能要比 Vi 丰富许多。

论坛徽章:
0
11 [报告]
发表于 2012-03-30 09:09 |只看该作者
timespace 发表于 2012-03-30 08:22
vi也可以proc.vim内容为


  这几个熟人 都起得好早啊!!!  8点多一点就在线回复贴子了~~~  

论坛徽章:
0
10 [报告]
发表于 2012-03-30 09:08 |只看该作者
hbmhalley 发表于 2012-03-29 17:19


  你这能实现???  我试了下 实现不了啊... 说"有多余字符"  :wink:
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP