我有这个文件:
1
2
3
4
a
b
c
XY
Z
我想把每个块转换成
TAB
分隔行,并附加当前
timestamp
在最后一列中获取这样的输出:
1 2 3 4 1548915098
a b c 1548915098
XY Z 1548915098
我可以用
awk
这样做:
awk '$(NF+1)=systime()' RS= OFS="\t" file
哪里空
RS
等于set
RS="\n\n+"
.
但我想用RubyOne行程序来完成。我想到了这个:
ruby -a -ne 'BEGIN{@lines=Array.new}; if ($_ !~ /^$/) then @lines.push($_.chomp) else (puts @lines.push(Time.now.to_i.to_s).join "\t"; @lines=Array.new) unless @lines.empty? end; END{puts @lines.push(Time.now.to_i.to_s).join "\t" unless @lines.empty?}' file
这有点尴尬。
有什么优雅的方法可以做到这一点吗?
有没有
ruby
相当于
AWK
的
遥感
,
NF
和
OFS
?
谢谢)