【发布时间】:2021-09-28 23:47:02
【问题描述】:
我想替换成对出现的双引号 " 字符。让我解释一下我的意思。
"Some sentence"
这里的双引号应该被替换,因为它们是成对出现的。
"Some sentence
此处不应替换 - 第一个引号字符没有匹配的对。
我想用„ 替换第一个引号字符。
❯ echo „ |hexdump -C
00000000 e2 80 9e 0a
第二个引号字符为”
❯ echo ” |hexdump -C
00000000 e2 80 9d 0a
总结如下:
Hi, "how
are you"
更换后应如下所示。
Hi, „how
are you”
我想出了以下代码,但它无法正常工作:
'sed -r s/(\")(.+)(\")/\1\xe2\x80\x9e\3\xe2\x80\x9d/g'
" hi " 给出"„"”。
编辑 根据 cmets 的要求,这里有一个来自要修改的文件的示例。重要提示:该文件是结构化的 - 也许它可能会有所帮助。该文件始终为 srt 文件,即电影字幕格式。
104
00:10:25,332 --> 00:10:27,876
Kobieta mówi do drugiej:
"Widzisz to, co ja?"
105
00:10:28,001 --> 00:10:30,904
A tamta: "No to co?
Każdy wygląda tak samo."
【问题讨论】:
-
是的,它需要。我想在电影字幕中做一些替换,双引号可能从一行开始,但在下一行甚至更远的地方结束。
-
是的,文件是结构化的。一些信息在这里:ai-media.tv/what-is-an-srt-file-and-how-to-use-one。但是,如果可能,最欢迎使用通用解决方案。