我有一个看起来像的文件:
我怎样才能删除“colaboracion \ d +”和“organismo:”之间的换行符?它应该是这样的:
colaboracion1: - 3 a�os (2003-2006) adjunto al coordinador del �rea de Inform�tica de la Agencia Nacional de Evaluaci�n y Prospectiva (ANEP).- Experto evaluador y revisor de proyectos para la Comisi�n Europea desde 2001.- Experto evaluador de agencias de evaluaci�n de Argentina, Chile, Israel, Francia y de varios organismos auton�micos (Galicia, Castilla y Le�n, Andaluc�a, Murcia).- A nivel nacional es evaluador habitual de ANECA y ANEP (proyectos del Plan Nacional I+D+i, Torres Quevedo, Estudios y An�lisis, etc.).
如您所见,新行已被删除。
我正在尝试使用sed或awk。有没有办法做到这一点?
这不是一个重复的问题,因为这个问题包括行中的特殊字符。例如,它包含可能一直改变以解析它的破折号。
谢谢!
答案 0 :(得分:1)
awk '{ sub(/[ \t\r]+$/, ""); sub(/^[ \t]+/, "") } !NF { next } /^[^[:space:]]+:/ { if (length(t)) print t; t = $0; next } { t = t $0 } END { if (length(t)) print t }' file
答案 1 :(得分:0)
从 konsolebox 的答案中窃取正则表达式位,这也应该有效:
awk '{if($0 !~ /^[^[:space:]]+:/ && NF) printf $0 " "; else print}' file