sed 语法仅在框和空格时删除 2 个字符

Ram*_*esh 3 sed

我有一个sed表达式可以从文件中的所有行中删除前 2 个字符。

sed 's/^..//' raw.txt > converted.txt
Run Code Online (Sandbox Code Playgroud)

但是,问题是有些行很大并且会附加到下一行。例如,如果我将输入视为以下几行,

? I have box and space in front
? I am a large line which will
get appended to next line.
? I am another line.
Run Code Online (Sandbox Code Playgroud)

根据我的sed语法,我得到的输出是,

I have box and space in front
I am a large line which will
t appended to next line. 
I am another line. 
Run Code Online (Sandbox Code Playgroud)

但是,我期望的输出是,

I have box and space in front. 
I am a large line which will get appended to next line. 
I am another line. 
Run Code Online (Sandbox Code Playgroud)

我应该如何修改 sed 表达式来实现这一点?

Sté*_*las 5

可能更容易awk

awk '{
       if (/^? /) printf "%s", (NR>1?"\n":"") substr($0,3)
       else printf " %s", $0
     }
     END {if (NR>0) print ""}'
Run Code Online (Sandbox Code Playgroud)