在 OSX 上,我已将 Powerpoint 幻灯片转换为 ASCII 文本,现在想使用 awk 对其进行处理。
- 我想将文件拆分为与幻灯片中的幻灯片相对应的多行记录。
- 处理任何以大写拉丁字母开头的行提供了一个很好的近似值,但我无法弄清楚在 awk 中执行此操作。
- 我尝试重置记录分隔符,
RS = "\n^[A-Z]"
和RS = "\n^[[:alnum:]][[:upper :]]"
,以及各种排列,但没有区别。也就是说,awk 始终将每个个体视为一条记录,而不是按照我的意愿将它们分组。
清理后的文本如下所示:
Welcome
++ Class will focus on:
– Basics of SQL syntax
– SQL concepts analogous to Excel concepts
Who Am I
++ Self-taught on LAMP(ython) stack
++ Plus some DNS, bash scripting, XML / XSLT
++ Prior professional experience:
– Office of Management and Budget
– Investment banking (JP Morgan, UBS, boutique)
– MBA, University of Chicago
Roadmap
+ Preliminaries
+ What is SQL
+ Excel vs SQL
+ Moving data from Excel to SQL and back
+ Query syntax basics
- Running queries
- Filtering, grouping
- Functions
- Combining tables
+ Using queries for analysis
有些“幻灯片”有空行,有些则没有。
一旦克服了这些障碍,我计划将每条记录包装在一个标签中,以便在 Deck.js 中使用。但正确地记录定义简直要了我的命。
我该如何做这些事情?
编辑:最初问的问题还涉及将 Unicode 项目符号字符转换为 ASCII,但我已经弄清楚了。评论中的一些评论集中在这些内容上。
最佳答案
在 awk
中,您可以尝试使用以下方式收集记录:
/^[[:upper:]]/ {
if (r>0) print rec
r=1; rec=$0 RS; next
}
{
rec=rec $0 RS
}
END {
print rec
}
要删除项目符号,您可以使用
gsub (/•/,"++",rec)
关于awk - 如何使用 awk 分割文件来进行多行记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478086/