如何替换文本中满足条件的换行符?

2023-06-30 06:51:39 +08:00
 1746855469

有一个英语单词的文本文件想导入欧路词典,但欧路不支持一词多行。文件的格式如下:

ability,n. 能力,能耐;才能
able,adj. 能; 有能力的;能干的
about,"prep. 关于;大约
n. 大致;粗枝大叶;不拘小节的人
adj. 在附近的;四处走动的;在起作用的
adv. 大约;周围;到处"
above,"prep. 超过;在……上面;在……之上
n. 上文
adj. 上文的
adv. 在上面;在上文"
accident,n. 事故;意外; 意外事件;机遇
accurate,adj. 精确的
ache,"n. 疼痛
vi. 疼痛;渴望"
activity,n. 活动;行动;活跃
actor,n. 男演员;行动者;作用物
actress,n. 女演员
actually,adv. 实际上;事实上

想请问,有什么简单的办法,能把解释中带引号"的单词( about, above, ache )的换行符换成空格,合并到一行里?最好能用现成的软件解决,必须要用到脚本的话,不知能不能赏下完整能跑的代码。

先行谢过。

1600 次点击
所在节点    程序员
15 条回复
sun1719
2023-06-30 07:17:09 +08:00
word ,通配符替换
nopdan
2023-06-30 07:37:11 +08:00
nopdan
2023-06-30 07:38:33 +08:00
![Snipaste_2023-06-30_07-35-56.png]( https://s2.loli.net/2023/06/30/3ifVQ8jwLn4ONmk.png)
4641585
2023-06-30 07:51:36 +08:00
用正则把引号之后的第一个换行符删掉,循环跑到没变化就完事了。
ho121
2023-06-30 07:59:40 +08:00
这个看起来很像 csv ,导入 Excel 然后删除换行再保存
junyee
2023-06-30 08:22:35 +08:00
看起来引号新起的一行都是以单词加小数点开头.
以 notepad2 为例可以这样(不含引号):


1: [勾]正则表达式搜索:
"^([a-z]+\.)" -> "++++\1"

2: [勾]转义反斜线
"\r\n++++" -> ""

"\n++++" -> ""
ispinfx
2023-06-30 08:24:11 +08:00
一眼 csv
18xlX5iTe9mdoau0
2023-06-30 08:27:03 +08:00
其实完全可以换个思路,让 ChatGPT 帮你实现
https://s1.locimg.com/2023/06/30/bc3de4c474938.png
tramm
2023-06-30 08:27:48 +08:00
专业的事情还是让专业的人来

你不理财, 财不离你
nuk
2023-06-30 08:38:50 +08:00
awk '/".+/,/"$/{printf "%s ",$0}'
nuk
2023-06-30 08:46:29 +08:00
忘了打印没匹配到了的,按照原义匹配:
awk '/".+/,/"$/{if ($0 !~ /"$/) {printf "%s ",$0; next;}} {print $0}'
csrocks
2023-06-30 09:34:50 +08:00
freedomSky
2023-06-30 09:47:01 +08:00
$ sed ':a /".*[^"]$/{N;s/\n/ /g; ta}' data

ability,n. 能力,能耐;才能
able,adj. 能; 有能力的;能干的
about,"prep. 关于;大约 n. 大致;粗枝大叶;不拘小节的人 adj. 在附近的;四处走动的;在起作用的 adv. 大约;周围;到处"
above,"prep. 超过;在……上面;在……之上 n. 上文 adj. 上文的 adv. 在上面;在上文"
accident,n. 事故;意外; 意外事件;机遇
accurate,adj. 精确的
ache,"n. 疼痛 vi. 疼痛;渴望"
activity,n. 活动;行动;活跃
actor,n. 男演员;行动者;作用物
actress,n. 女演员
actually,adv. 实际上;事实上
laqow
2023-06-30 14:40:31 +08:00
csv 如果格式没问题的话,非手动回车换行结尾是\r ,手动回车是\r\n 或\n
toan
2023-06-30 15:51:55 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/952860

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX