LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 937|回复: 6

一个分割问题……

[复制链接]
发表于 2008-10-21 20:56:49 | 显示全部楼层 |阅读模式
从这样的文件中读取信息:
  1. REM GENRE R&B
  2. REM DATE 2004
  3. REM DISCID E6115612
  4. REM COMMENT "ExactAudioCopy v0.95b4"
复制代码
如果想要使:
  1. GENRE=R&B
  2. DATE=2004
  3. DISCID=E6115612
  4. COMMENT="ExactAudioCopy v0.95b4"
复制代码
应该怎么写脚本?我觉得难点在有时候会有双引号括起来的字串,只用空格来分割行不管用……
发表于 2008-10-21 21:12:10 | 显示全部楼层
$ sed -e 's/REM //;s/ /=/' foo
GENRE=R&B
DATE=2004
DISCID=E6115612
COMMENT="ExactAudioCopy v0.95b4"

要是变量名中没有空格的话。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-21 21:20:52 | 显示全部楼层
Post by helo_aBiNg;1897205
$ sed -e 's/REM //;s/ /=/' foo
GENRE=R&B
DATE=2004
DISCID=E6115612
COMMENT="ExactAudioCopy v0.95b4"

要是变量名中没有空格的话。


牛!~ sed 里 s/ /=/替换是只替行内换一次遇到的空格么?呵呵~学习了~变量名里应该没有空格~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-21 21:57:15 | 显示全部楼层
这种情况怎么办?……
  1. REM COMMENT Piano - Zoltán Kocsis conducted by Edo de Waart
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-10-23 17:57:35 | 显示全部楼层
Post by grissiom;1897229
这种情况怎么办?……
  1. REM COMMENT Piano - Zoltán Kocsis conducted by Edo de Waart
复制代码


sed -e 's/REM //' -e 's/ /=\"/' -e 's/$/"/'
COMMENT="iano - Zoltán Kocsis conducted by Edo de Waart"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-23 20:21:10 | 显示全部楼层
Post by simdiak;1898173
sed -e 's/REM //' -e 's/ /=\"/' -e 's/$/"/'
COMMENT="iano - Zoltán Kocsis conducted by Edo de Waart"


嗯……不过这个就不适用于第一种情况了……有没有通用的方法?……
回复 支持 反对

使用道具 举报

发表于 2008-10-26 14:35:02 | 显示全部楼层
mark....
回复 支持 反对

使用道具 举报

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

本版积分规则

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