使用sed命令规范化文档

有这样一段文字

426. He is taller than I by ahead. 他比我高一头。 427. He led them down the mountain. 他带他们下山?  428. He was trained to be a lawyer 一-一! 429.tttttttttttttttttttttttttttttttttttt

希望把它规范化成这样的格式:

426. ………………

427. ………………

………………

通过使用sed命令,可以达到这样的效果:

方法一

sed 's/\([。!?]\)/\1\n/g' a.txt | sed 's/^ *//g'

这里通过使用后向引用 \1 获取括号里()匹配的字符 --在sed里,要使用后向引用,需要用\注释括号。

[]里是要匹配的行末字符

方法二

sed 's/\([0-9]*\.\)/\n\1/g' a.txt | sed '/^$/d'

按格式要求,每一行都是若干位“数字” + “.” 开头,故只需在这些字符串前面加上“\n”换行符即可,然后通过 sed '/^$/d' 删除第一次匹配的“426.”前的空行即可。




你可能感兴趣的:(shell,sed)