1 renmu 2024-10-07 17:36:43 +08:00 via Android 你想去除换行?随便哪个语言实现都很容易 |
![]() | 2 adrianzhang OP @renmu 有很多文件,宽度各个不同,段落间空行数等也不同,空格或 Tab 也乱,总之就是排版乱七八糟的。这么一堆文件需要处理,是需要一个程序的。这不知道了 Windows 有,想看看 Linux 的有没有。 |
3 diivL 2024-10-07 17:42:40 +08:00 sed, awk |
![]() | 4 adrianzhang OP @diivL 怎么判断宽度呢? |
5 mayli 2024-10-07 17:48:08 +08:00 推荐自学正则 |
![]() | 6 adrianzhang OP @mayli 学的不精。怎么用正则判断? |
7 imjiaoyuan 2024-10-07 17:56:25 +08:00 via Android 可以用 AI 写吧,Linux 下用正则其实挺容易实现的个人感觉 |
![]() | 8 adrianzhang OP @imjiaoyuan 确实想过这个途径,但不知道该向 AI 提供什么样问题才能得到答案。 合并行?不对。 |
![]() | 9 june4 2024-10-07 18:08:27 +08:00 都不用正则,几行代码就行了。先把 2 个以上连续回车的替换成一个特殊文字,然后把一个回车的替换成空字符串,再把特殊文字替换回二个回车,搞定。 |
![]() | 10 adrianzhang OP @june4 用 Word 是这么整理的。但是 Linux 下怎么干呢? |
![]() | 11 june4 2024-10-07 18:30:19 +08:00 ![]() 我以前写过一个,找了下还在 注意这里我转的文件都是\r\n 换行的,你看你的情况可能要改一下 #!/usr/bin/node const assert = require('node:assert/strict') const fs = require('node:fs') const filename = process.argv[2] assert(filename, 'Missing filename arg') console.log('=> Filename:', filename) const TMP_LINE = '{{TMP_LINE}}' let cOntent= fs.readFileSync(filename, 'utf-8') cOntent= content.replaceAll(/\r\n\r\n/g, TMP_LINE + TMP_LINE) cOntent= content.replaceAll(/\r\n/g, '') cOntent= content.replaceAll(TMP_LINE, '\n') fs.writeFileSync(filename + '.joined', content) |
![]() | 12 saranz 2024-10-07 18:42:36 +08:00 这个不就是找到 \n \r 然后删除的事嘛,就是用 shell 都能办的事。 |
![]() | 13 adrianzhang OP @june4 #11 谢谢!我试试看。 |
![]() | 14 adrianzhang OP @saranz #12 不一定啊,也许有\n\n 等等各种情况。 |
15 LaTero 2024-10-07 19:29:08 +08:00 via Android ![]() 把不是紧跟着标点符号的\n 删掉试试 |
![]() | 16 adrianzhang OP @LaTero #15 是个挺好的思路。 |
17 caomu 2024-10-07 20:29:13 +08:00 via Android ![]() 可以搜索一下 文本格式化工具 / text format ,有很多现成的工具 |
![]() | 18 TigerK 2024-10-07 20:38:52 +08:00 为什么不让神奇的 AI 替你整理呢? |
![]() | 19 adrianzhang OP @caomu #17 太好了!原来这个关键字。非常感谢! |
![]() | 20 adrianzhang OP @TigerK #18 因为需要批量处理,所以问 AI 也是问程序怎么写,可是我连关键字都不知道,17 楼刚给出来。 |
![]() | 21 saranz 2024-10-07 22:52:06 +08:00 @adrianzhang \n\n 不一样是等于\n 吗,反正都是要删除的。 |
![]() | 22 adrianzhang OP @saranz #21 嗯,总之很乱,需要程序处理很多情况。 |
![]() | 23 saranz 2024-10-08 08:43:15 +08:00 @adrianzhang 万不离其中,最基本的单位就是 \n 。全部换成空值,不就是等于 0 吗。 |
![]() | 24 adrianzhang OP @saranz 那怎么分段呢?看例子这样的,段间的分隔也是 n |