【发布时间】:2019-12-01 17:20:00
【问题描述】:
我有以下文字:
pane 0 1 :title 1 :* 1 :/home/user 0 app1name :
app1 -some -stuff
pane 0 1 :title 1 :* 2 :/home/user 0 app2name :
pane 0 1 :title 1 :* 3 :/home/user 1 app3name :
app3
window 0 1 1 :* somelongstuff
state 0
我想要实现的是在结束 : 后删除换行符,但仅当以下行不以 pane\t 或 window\t 开头时
所以最终的输出应该是这样的:
pane 0 1 :title 1 :* 1 :/home/user 0 app1name :app1 -some -stuff
pane 0 1 :title 1 :* 2 :/home/user 0 app2name :
pane 0 1 :title 1 :* 3 :/home/user 1 app3name :app3
window 0 1 1 :* somelongstuff
state 0
我尝试了几种sed和awk,比如
sed '/\npane\t/ n; /window\t/ n; N; s/:\n/:/g' 或 awk '{ORS=(/pane\t/?"":RS)}1' 但在某种程度上他们都失败了
谁能帮帮我?
【问题讨论】:
-
将这些努力发布到问题中
-
@Inian 根据要求我添加了几次(失败的)尝试