我想删除未跟随点的初始数字(.
)
如果该行不以点(\n
)结尾,则删除换行符(.
)。
这是示例文本:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ac tellus nunc. Phasellus
pellentesque, suscipit ac nunc. Etiam lobortis, massa ac aliquam auctor, augue nisl
53sagittis urna, at dapibus tellus erat ullamcorper ligula.
Praesent orci dui, pulvinar id convallis a, faucibus non mauris.
2.Cras vitae tortor purus
5. ut tincidunt mauris. Sed at velit nisl.
8. Donec eu mauris tortor, interdum condimentum erat
65Donec tellus augue, tempus sed facilisis sed, fringilla quis leo. Mauris vulputate, leo
ac facilisis vulputate, enim orci interdum augue, in blandit quam turpis
quis dui. Morbi dictum luctus velit nec faucibus.
我想要的输出:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ac tellus nunc. Phasellus pellentesque, suscipit ac nunc. Etiam lobortis, massa ac aliquam auctor, augue nisl sagittis urna, at dapibus tellus erat ullamcorper ligula.
Praesent orci dui, pulvinar id convallis a, faucibus non mauris.
2.Cras vitae tortor purus
5. ut tincidunt mauris. Sed at velit nisl.
8. Donec eu mauris tortor, interdum condimentum erat
Donec tellus augue, tempus sed facilisis sed, fringilla quis leo. Mauris vulputate, leo ac facilisis vulputate, enim orci interdum augue, in blandit quam turpis quis dui. Morbi dictum luctus velit nec faucibus.
答案 0 :(得分:2)
您的示例与您的说明不符。在您的示例输出中(与您的说明相反),如果符合以下条件,则不会移除\n
2.Cras vitae tortor purus
)... ligula. \n
)这个perl代码实现了这些要求:
perl -pe 'next if /^\d+\./; s/^\d+//; chomp if /\S/ && !/\.\s*$/'
即
答案 1 :(得分:1)
你可能想要的(非常可怕的)sed
是:
sed -re ':a;N;$!ba;s/[[:digit:]]+([^.])/\1/g;s/([^.])\n/\1/g' file.txt
(将整个文件视为一个流,将一个或多个数字替换为' not-a-dot'使用' not-a-dot',然后替换所有& #39; not-a-dot'其次是换行符,其中包含' not-a-dot'匹配。
然而,当它符合您的要求时,由于多个空白行,并且某些列表项末尾缺少点,因此它会根据您的要求输出略有不同的结果 - 因此您可能需要重新考虑您的方法:< / p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ac tellus nunc. Phasellus pellentesque, suscipit ac nunc. Etiam lobortis, massa ac aliquam auctor, augue nisl sagittis urna, at dapibus tellus erat ullamcorper ligula. Praesent orci dui, pulvinar id convallis a, faucibus non mauris.
2.Cras vitae tortor purus5. ut tincidunt mauris. Sed at velit nisl.
8. Donec eu mauris tortor, interdum condimentum erat
Donec tellus augue, tempus sed facilisis sed, fringilla quis leo. Mauris vulputate, leoac facilisis vulputate, enim orci interdum augue, in blandit quam turpisquis dui. Morbi dictum luctus velit nec faucibus.