我有以下输出:
02:01:31
OFFLINE
02:02:31
ONLINE
我想成为:
02:01:31 OFFLINE
02:02:31 ONLINE
我找到了一种用sed ':a;N;$!ba;s/\n/ /g'
删除所有换行符/换行符的方法,但是它给了我以下内容,这不是我真正想要的内容:
02:01:31 OFFLINE 02:02:31 ONLINE
问:如何仅为符合特定模式的行删除换行符/换行符(在这种情况下[0-9]
就足够了?
PS:只要我可以将正则表达式模式应用于行的匹配,就不必与sed
一起使用
答案 0 :(得分:4)
让您的s/\n/ /g
成为s/\([0-9]\S*\)\n/\1 /g
(一个数字后跟任意数量的非空格,后跟换行符。)
答案 1 :(得分:1)
awk oneliner:
awk '/[0-9]$/{printf $0" ";next;}1'
试验:
kent$ echo "02:01:31
OFFLINE
02:02:31
ONLINE"|awk '/[0-9]$/{printf $0" ";next;}1'
02:01:31 OFFLINE
02:02:31 ONLINE