Board logo

标题: [文本处理] 【已解决】批处理如何通过标点符号进行分段? [打印本页]

作者: 每天几分    时间: 2022-11-10 10:20     标题: 【已解决】批处理如何通过标点符号进行分段?

本帖最后由 每天几分 于 2022-11-10 13:11 编辑

用正则表达式试过,但效率有点慢。
常用标点符号
[,。?!:;、()%/~‘’“”《》<>——……]


如:  
冷风如刀,以大地为砧板,视众生为鱼肉。
万里飞雪,将苍穹作洪炉,溶万物为白银。
雪将住,风未定,一辆马车自北而来,滚动的车轮碾碎了地上的冰雪,却碾不碎天地间的寂寞。

实现如下:

冷风如刀
以大地为砧板
视众生为鱼肉
万里飞雪
将苍穹作洪炉
溶万物为白银
雪将住
风未定
一辆马车自北而来
滚动的车轮碾碎了地上的冰雪
却碾不碎天地间的寂寞
作者: hfxiang    时间: 2022-11-10 11:42

将:
  1. 冷风如刀,以大地为砧板,视众生为鱼肉。
  2. 万里飞雪,将苍穹作洪炉,溶万物为白银。
  3. 雪将住,风未定,一辆马车自北而来,滚动的车轮碾碎了地上的冰雪,却碾不碎天地间的寂寞。
复制代码
以ANSI编码格式保存为1.txt


将:
  1. BEGIN {
  2. FS="[,。?!:;、()%/~‘’“”《》<>——……]"
  3. }
  4. {
  5. for (i = 0; ++i <= NF; ) {
  6. if ($i) {
  7. print $i
  8. }
  9. }
  10. }
复制代码
以ANSI编码格式保存为1.awk

下载gawk(http://bcn.bathome.net/tool/4.1.0/gawk.exe
执行:
  1. gawk -f.\1.awk 1.txt>2.txt
复制代码
结果:
  1. 冷风如刀
  2. 以大地为砧板
  3. 视众生为鱼肉
  4. 万里飞雪
  5. 将苍穹作洪炉
  6. 溶万物为白银
  7. 雪将住
  8. 风未定
  9. 一辆马车自北而来
  10. 滚动的车轮碾碎了地上的冰雪
  11. 却碾不碎天地间的寂寞
复制代码

作者: hfxiang    时间: 2022-11-10 13:00

方案二,将:
  1. BEGIN {
  2. RS="[,。?!:;、()%/~‘’“”《》<>——……\n]+"
  3. }
  4. {
  5. print
  6. }
复制代码
以ANSI编码格式保存为2.awk

执行:
  1. gawk -f.\2.awk 1.txt>2.txt
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2