我在awk中开发一个脚本,根据我的喜好将tex文档转换为html。
#!/bin/awk -f
BEGIN {
FS="\n";
print "<html><body>"
}
# Function to print a row with one argument to handle either a 'th' tag or 'td' tag
function printRow(tag) {
for(i=1; i<=NF; i++) print "<"tag">"$i"</"tag">";
}
NR>1 {
[conditions]
printRow("p")
}
END {
print "</body></html>"
}
正如所见,它处于一个非常年轻的发展阶段。
\documentclass[a4paper, 11pt, titlepage]{article}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{imakeidx}
[...]
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla placerat lectus sit amet augue facilisis, eget viverra sem pellentesque. Nulla vehicula metus risus, vel condimentum nunc dignissim eget. Vivamus quis sagittis tellus, eget ullamcorper libero. Nulla vitae fringilla nunc. Vivamus id suscipit mi. Phasellus porta lacinia dolor, at congue eros rhoncus vitae. Donec vel condimentum sapien. Curabitur est massa, finibus vel iaculis id, dignissim nec nisl. Sed non justo orci. Morbi quis orci efficitur sem porttitor pulvinar. Duis consectetur rhoncus posuere. Duis cursus neque semper lectus fermentum rhoncus.
\end{document}
我想要的是,脚本只解释\begin{document}
和\end{document}
之间的行,因为在它们之前是库、变量等的导入;目前我对这些不感兴趣。
如何使它只处理该模式中的文本?
2条答案
按热度按时间wko9yo5t1#
GNU
AWK
有一个名为Range的特性,当你提供两个被,
剪切的条件时,动作将只应用于具有这些条件的行之间(包括这些行),考虑下面的简单例子,让file.txt
内容为然后
给出输出
wwtsj6pe2#
使用正则表达式设置一个标志,然后根据该标志进行打印:
打印起始字符串和结束字符串之间的所有内容(包括起始字符串和结束字符串):
如果您只需要起始字符串和结束字符串之间的文本,但不包括起始字符串和结束字符串:
印刷品: