awk 对一个变量表达式求值两次,但对同一个表达式求值两次
Awk evaluates one variable expression but not the same expression twice
我正在尝试将文件拆分为单独的文件并在每个文件中插入 HTML 导航元素。该脚本在 "Volume" 上正确拆分了较大的文件,并正确计算 n - 1 以构建文件名。
awk 'BEGIN{
f="\<html\> \<head\>Jury Transcript Volume 1\</head\>\<body\>\<h2 align=\"center\"\>Jury Transcript Volume 1\</h2\>";
RS = "Volume"
}
{n++}
{
x="volume-01-page-" n - 1 ".html";
print f>x;
}
{print > x}
{
y="\<span align\"left\"\>\<a href=\"jury-volume-01-page-\" n - 1 \.\"html\"\>Prev\</a\>\</span\>\<span align=\"right\"\>\<a href=\"jury-volume-01-page-\" n - 1 \.\"html\"\>Next\</a\>\</span\>";
print y>x;
}' jury-volume-01-base-prep-double.txt
生成:jury-volume-01-page- 作为链接。
当我尝试不转义 HTML 链接上的引号时,在导航链接的第一个 "html" 文件扩展名之前的句点出现语法错误。
创建单独文件的表达式(成功)和导航链接的表达式失败。
如何创建当前页面之前页面和之后页面的成功计算并将该结果插入导航链接?
将关闭 HTML 代码,但我认为插入导航链接的答案也足以满足该样板文件的要求。
谢谢!
帕特里克
您不应转义分隔 awk 字符串的引号,而应转义您希望成为 HTML 一部分的引号。点应该在弦内。也没有必要转义字符串中的 >
和 <
字符。
y="<span align=\"left\"><a href=\"jury-volume-01-page-" n - 1 ".html\">Prev</a></span><span align=\"right\"><a href=\"jury-volume-01-page-" n - 1 ".html\">Next</a></span>";
我正在尝试将文件拆分为单独的文件并在每个文件中插入 HTML 导航元素。该脚本在 "Volume" 上正确拆分了较大的文件,并正确计算 n - 1 以构建文件名。
awk 'BEGIN{
f="\<html\> \<head\>Jury Transcript Volume 1\</head\>\<body\>\<h2 align=\"center\"\>Jury Transcript Volume 1\</h2\>";
RS = "Volume"
}
{n++}
{
x="volume-01-page-" n - 1 ".html";
print f>x;
}
{print > x}
{
y="\<span align\"left\"\>\<a href=\"jury-volume-01-page-\" n - 1 \.\"html\"\>Prev\</a\>\</span\>\<span align=\"right\"\>\<a href=\"jury-volume-01-page-\" n - 1 \.\"html\"\>Next\</a\>\</span\>";
print y>x;
}' jury-volume-01-base-prep-double.txt
生成:jury-volume-01-page- 作为链接。
当我尝试不转义 HTML 链接上的引号时,在导航链接的第一个 "html" 文件扩展名之前的句点出现语法错误。
创建单独文件的表达式(成功)和导航链接的表达式失败。
如何创建当前页面之前页面和之后页面的成功计算并将该结果插入导航链接?
将关闭 HTML 代码,但我认为插入导航链接的答案也足以满足该样板文件的要求。
谢谢!
帕特里克
您不应转义分隔 awk 字符串的引号,而应转义您希望成为 HTML 一部分的引号。点应该在弦内。也没有必要转义字符串中的 >
和 <
字符。
y="<span align=\"left\"><a href=\"jury-volume-01-page-" n - 1 ".html\">Prev</a></span><span align=\"right\"><a href=\"jury-volume-01-page-" n - 1 ".html\">Next</a></span>";