这是一个文件我内联网。我不记得我在哪里找到了方便的sed
单行。如果你搜索“sed的一个班轮”
你有没有需要文本行结合起来您可能会发现一些东西,但它太繁琐的手工做。
例如,假设我们有数百行看起来像这样的文本文件:
14/04/2003,10:27:47,0
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
14/04/2003,10:30:51,600
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.010,0.975,0.005
14/04/2003,10:34:02,600
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.011,0.975,0.005
IdVg,3.000,-1.000,0.050,0.006
GmMax,0.010,0.975,0.005
每个日期(14/04/2003)是一种数据记录的开始,并继续在接下来的四行。
我们希望将此输入到Excel中作为'逗号分隔值'文件,并在其自己的行中查看每条记录。
在我们的例子中,我们需要附加任何线开始与G或I前行,并插入一个逗号,以便产生以下各项:
14/04/2003,10:27:47,0,IdVg,3.000,-1.000,0.050,0.006,GmMax,0.011,0.975,0.005,IdVg,3.000,...
14/04/2003,10:30:51,600,IdVg,3.000,-1.000,0.050,0.006,GmMax,0.011,0.975,0.0005,IdVg,3.000,...
14/04/2003,10:34:02,600,IdVg,3.000,-1.000,0.050,0.006,GmMax,0.011,0.975,0.0005,IdVg,3.000,...
这是一个典型的应用一个'正则表达式',再一次,sed来拯救。
的编辑可以用一个sed命令来完成:
sed -e :a -e '$!N;s/\n\([GI]\)/,\1/;ta' -e 'P;D' filename >newfilename
我没有说这将是明显的,否则容易,不是吗?
这是您在需要时偶尔记录的地方。
投了一个不错的解释。 – Anders 2010-01-20 23:46:19