Shell 脚本:将文本文件 t.txt 中的句子和逗号进行分行处理
Shell 脚本:将文本文件 t.txt 中的句子和逗号进行分行处理
该脚本使用 sed 命令实现以下功能:
- 将 t.txt 文件中非句号结尾的句子与下一行拼接
- 将逗号前的内容进行断行
#!/bin/bash
sed -e ':a' -e 'N' -e '$!ba' -e 's/\([^。]\)\n\([^。]\)/\1\2/g' t.txt | sed 's/\([^,]\),\([^,]\)/\1,
\2/g' > new_t.txt
脚本说明:
sed -e ':a' -e 'N' -e '$!ba' -e 's/\([^。]\)\n\([^。]\)/\1\2/g' t.txt::a:定义一个标签为 a 的循环。N:读取下一行并追加到当前行的模式空间。$!ba:如果当前行不是最后一行,则跳转到标签 a,继续循环。s/\([^。]\)\n\([^。]\)/\1\2/g:查找非句号结尾的行,并将其与下一行拼接。
sed 's/\([^,]\),\([^,]\)/\1, \2/g':查找逗号前的内容,并在逗号前进行断行。
脚本运行方法:
- 将脚本保存为 a.sh 文件。
- 在终端中执行
bash a.sh命令。
注意:
- 该脚本将覆盖原文件,请备份原始文件。
- 该脚本仅处理非句号结尾的句子和逗号前的内容,其他字符的处理需要进行修改。
原文地址: https://www.cveoy.top/t/topic/lW9c 著作权归作者所有。请勿转载和采集!