1,cake:01351 12,bun:1063 scone:13581 biscuit:1931 14,jelly:1385
我需要将其转换,以便在行的开头读取一个数字时,它将与下面的行结合,但是如果在开始时没有数字,则行保持原样。 这将是我需要的输出:
1,jelly:1385
用sed实现这个很麻烦,看起来可能不是我认为应该很简单的最好方法。
任何build议不胜感激。
从Bash中另一个更大的文本文件中find文本文件的行的最快方法
根据date范围筛选日志文件条目
replace| 字符之间的logging与pipe道分隔文件中的值
重新输出打印
在特定列中查找具有共同值的行
shell脚本用正则expression式从文本文件中提取多行数据
将行移到文件中的另一行
用于logginglinux进程的cpu和内存使用情况的Shell脚本
要显示的shell脚本 – 内存使用情况,磁盘使用情况和cpu负载?
如何使用awk在文件中写入一个文件(); 并在之后添加一个printline; 打印find的string?
一个非常基本的sed实现:
sed -e '/^[0-9]/{N;s/n//;}'
这依赖于只有 “数字”行上的第一个字符是一个数字(如您所指定的)。
它
匹配以数字开头的行, ^[0-9]
带来下一行, N
删除嵌入的换行符, s/n//
这是我的内部网上的一个文件。 我不记得我在哪里找到了方便的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,0.005 14/04/2003,10:30:51,600 IdVg,0.010,10:34:02,0.005
每个日期(14/04/2003)是数据记录的开始,并在接下来的四行继续。
我们想把这个输入到Excel中作为一个“逗号分隔值”文件,并查看它自己行中的每个记录。
在我们的例子中,我们需要将以G或I开始的任何行追加到前一行,并插入一个逗号,以便产生以下内容:
14/04/2003,IdVg,0.006,GmMax,0.005,... 14/04/2003,600,0.0005,...
这是“正则表达式”的经典应用,再一次,sed来拯救。
编辑可以用一个sed命令完成:
sed -e :a -e '$!N;s/n([GI])/,1/;ta' -e 'P;D' filename >newfilename
我没有说这是明显的还是容易的,我呢?
这是你在需要的时候在罕见场合写下的那种命令。
尝试正则表达式,例如:
sed '/[0-9]+,/{N}s/n//)'
检查第一行的数字(0-9)和逗号,然后用空白替换新行,删除它。
awk '/^[0-9]/ {n = $0; getline; print n $0; next} 1'
$ awk 'ORS= /^[0-9]+,$/?" ":"n"' file 1,jelly:1385
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。