如何解决搜索引用并将其移动到内联事件
我正在导出Google文档,并使用https://github.com/facundoolano/googledoc2latex进行转换。 (这是到目前为止我发现的最准确,最免费的工具。)
文档脚注(如html版本)在文本下方。
[text]
This is an example.$^{[1]}$ I like it.$^{[2]}$
[text]
[1] I'm a footnote!
[2] I'm also a footnote!
预期结果应该是
[text]
This is an example.\footnote{I'm a footnote!} I like it.\footnote{I'm also a footnote!}
[text]
就我的目的而言,它可以使用awk,sed,perl,python,bash来完成...从长远来看,python会很棒,因为它可以合并到项目中。
因此,脚本需要查找所有引用,并将其替换为真实文本。
我没有找到以sed和awk开头的方法,并且没有perl和python的经验。有什么建议吗?
解决方法
Perl解决方案:
perl -ne '
if (/^(\[[0-9]+\]) (.*)/) {
$f{$1} = $2;
} else {
push @lines,$_;
}
END {
print s{\$\^\{(\[[0-9]+\])\}\$}{$f{$1} // "Missing $1!!!"}ger
for @lines }
' -- file.txt
-
-n
逐行读取输入 - 第一个正则表达式与脚注的定义匹配,它将文本存储在键
%f
,[1]
等下的哈希值[2]
中。 - 不包含脚注定义的行存储在
@lines
数组中 - 读取文件后,将打印存储的行。在每一行上,对脚注的引用将替换为哈希中存储的值,如果找不到定义,则替换为
Missing [4]
。
Perl代码算法
- 使用正则表达式将脚注中的文本分隔
- 替换每个脚注
struct ContentView: View {
@FetchRequest(entity: Item.entity(),sortDescriptors: [
NSSortDescriptor(keyPath: \Item.name,ascending: true) // <-- can I add a selector here?
]) var items: FetchedResults<Item>
var body: some View {
// content
}
}
输出
localizedCaseInsensitiveCompare
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。