将引号替换为“``”和“''”

2023-12-08

我有一个包含很多内容的文档"标记,但我想将其转换为在 TeX 中使用。

TeX 使用 2 个 ` 标记作为开始引号,使用 2 个 ' 标记作为结束引号。

我只想在以下情况下对这些进行更改"以偶数出现在单行上(例如,有 2、4 或 6"已上线)。例如

"This line has 2 quotation marks."
--> ``This line has 2 quotation marks.''

"This line," said the spider, "Has 4 quotation marks."
--> ``This line,'' said the spider, ``Has 4 quotation marks.''

"This line," said the spider, must have a problem, because there are 3 quotation marks."
--> (unchanged)

我的句子永远不会跨行,因此不需要检查多行。

单引号很少,所以我可以手动更改它们。

我怎样才能转换这些?


这是我的一句台词,对我有用:

awk -F\" '{if((NF-1)%2==0){res=$0;for(i=1;i<NF;i++){to="``";if(i%2==0){to="'\'\''"}res=gensub("\"", to, 1, res)};print res}else{print}}' input.txt >output.txt

这段话有一个长版本,附有评论:

{
    FS="\"" # set field separator to double quote
    if ((NF-1) % 2 == 0) { # if count of double quotes in line are even number
        res = $0 # save original line to res variable
        for (i = 1; i < NF; i++) { # for each double quote
            to = "``" # replace current occurency of double quote by ``
            if (i % 2 == 0) { # if its closes quote replace by ''
                to = "''"
            }
            # replace " by to in res and save result to res
            res = gensub("\"", to, 1, res)
        }
        print res # print resulted line
    } else {
        print # print original line when nothing to change
    }
}

您可以通过以下方式运行此脚本:

awk -f replace-quotes.awk input.txt >output.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将引号替换为“``”和“''” 的相关文章

随机推荐

  • 获取 Facebook 页面的访问令牌 - WPF

    我正在开发一个 WPF 应用程序 需要在 facebook 页面的墙上发布内容 并且没有登录窗口 好吧 我想获取我的 Facebook 页面的访问令牌 这是我的代码 var fb new FacebookClient string toke
  • 在 WebView 中单击链接时加载本地 HTML 文件

    我有一个加载本地 HTML 文件的 WebView 如下所示 webView loadRequest NSURLRequest requestWithURL NSURL fileURLWithPath NSBundle mainBundle
  • java中只接受单个数字

    我正在编写一个简单的程序 它接受多个输入并显示最大的然后是第二大的 我唯一的问题是我希望程序只接受个位数 我知道这又回到了基础 但请耐心听我说 到目前为止我写的代码是 import javax swing JOptionPane publi
  • 在 Android 中运行时更新视图

    这个例子非常简单 我想让用户通过显示文本 canvas drawText 来了解应用程序正在做什么 然后 我的第一条消息出现 但其他消息则不出现 我的意思是 我有一个 setText 方法 但它不更新 onCreate Bundle bun
  • Gradle 构建失败并提示:找不到 org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.3

    我正在使用 Android Studio Canary 构建一个新项目 在设置 jet pack compose 的依赖项时 我将其作为构建输出 Execution failed for task app processDebugAndro
  • TKinter 样式和 Treeview 点击问题

    我在 TKinter 中的样式上遇到了困难 我的主要问题是您无法单击树视图中的任何内容 要进行测试 只需按 按测试 按钮即可 由于某种原因 style theme create 接管了我的树视图小部件 无论我尝试什么 我似乎都找不到解决方案
  • 如何检查Azure Function是否仍在运行

    我遇到一种情况 我必须定期调用 Azure 函数 当我调用该函数时 我需要检查天蓝色函数的状态 如果Azure函数正在运行 那么我需要推迟调用直到它完成 我正在尝试查看电子邮件队列 当电子邮件传入时 我需要使用 Amazon SES 发送电
  • 如何在 Obj-C 中打开和读取资源分支

    我有一个旧的 OS9 文件 其中包含带有 CODE 资源的资源叉 我想从 Obj C 读取该文件 我用类似的东西 NSFileHandle codeFile NSFileHandle fileHandleForReadingAtPath m
  • 如何在 python 中生成 nginx 安全链接

    如何使用 python 为 nginx 中的安全链接模块建立链接 我希望使用 nginx 来提供具有过期链接的安全文件 链接到 Nginx 维基 shadfc 答案中的代码有效 为了Python 3 需要进行一些修改 import base
  • 用 PHP 解决验证码问题?个人挑战?

    我想看看我是否可以使用 PHP 解决验证码 以应对一些个人挑战 没什么太难的 同一行中的单词 始终使用相同颜色的单词等 这是一个示例 http www simplyshows com img jpg 只是想看看会有多难 我的问题是 是否有基
  • 确定构造函数、初始化和重置方法的任务的最佳实践是什么

    尽管我是用 Java 设计的 但这是一个常见的 OOP 问题 我并不是想解决某个特定问题 只是想思考一些设计原则 根据我的经验 我养成了将对象设置分为三个阶段的习惯 目标是最大限度地减少 额外的工作 混乱的代码和受损的可扩展性 建造 所需采
  • subprocess.Popen 命令(反词)在 shell 与 Web 应用程序中产生不同的输出

    我让 Django 在标准 WSGI Apache httpd 组合上运行 我注意到当我在 shell 中运行代码与在浏览器中运行代码时 文件输出是不同的 我已经隔离了其他所有内容 但仍然遇到同样的问题 这是代码 def test anti
  • 如何将 JavaPairDStream 的结果写入 Spark Streaming 上的输出 kafka 主题?

    我正在寻找一种在输出 kafka 主题中编写 Dstream 的方法 只有当微批量 RDD 吐出一些东西时 我在 Java8 中使用 Spark Streaming 和 Spark streaming kafka 连接器 都是最新版本 我无
  • delphi 7中如何读取资源文件?

    我已经制作了资源文件 并已将其编译并与我的 delphi 单元链接 但是从该资源文件读取时我遇到了问题 implementation R dfm R stuff res stuff rc procedure TForm1 FormCreat
  • Firebase getDocument(querySnapshot)不起作用

    我面临着 Firebase 快照的问题 我已成功将我的 Fierbase 帐户与我的 Xcode 项目连接起来 我能够更改 Firestore 云中的数据 但我读不懂 这是我的功能 class UserService static func
  • 色彩空间转换

    我正在尝试编写一个程序 在用户输入图像后 他可以看到一些小的图像处理 更具体地说 我想将图像从 RGB 转换为 CMYK 和 YUV 然后在屏幕上仅显示这些颜色空间中的一个分量 即仅来自 CMY 的青色或来自 YUV 的 U 我设法实现了转
  • 在 iPhone 的 Objective-C 中解析 Java 属性文件

    我正在 iPhone SDK 中寻找一种读取属性文件 不是 XML 风格 的方法 例如 a comment a comment a a string b a string with escape sequences t n r space
  • Windows 上的 libgit2 可能存在 Rugged gem 安装问题

    我正在使用 Windows 和我的Gemfile有这一行 gem rugged 当我跑步时bundle install它给了我这个错误 Installing rugged 0 21 0 with native extensions Gem
  • java中的ArrayList打印最后插入的值?

    我有以下java类 package com picvik model import java util Date public class ViewAlbum private Integer albumid private String a
  • 将引号替换为“``”和“''”

    我有一个包含很多内容的文档 标记 但我想将其转换为在 TeX 中使用 TeX 使用 2 个 标记作为开始引号 使用 2 个 标记作为结束引号 我只想在以下情况下对这些进行更改 以偶数出现在单行上 例如 有 2 4 或 6 已上线 例如 Th