如何解决如何使用awk将一定数量的行复制到bash中的新txt文件中
我有一个包含章节的 txt 文件,我想使用 bash 将每个章节复制到一个新的 txt 文件中。 例如:
“第一章。在兔子洞里 爱丽丝开始变得非常......
第二章。泪池
“好奇和好奇!”爱丽丝喊道(她非常惊讶,以至于 此刻她完全忘记了如何说一口流利的英语); ..... "
我想为每章创建 2 个文件 1。
DataTable kk = _sqlRepository.GetDataTable(str);
DataTable dd = kk.Clone();
for (int i = 0; i < dd.Rows.Count; i++)
{
dd.Columns[i].DataType = typeof(String);
}
foreach (DataRow row in kk.Rows)
{
dd.ImportRow(row);
}
这就是我认为我应该做的,但行不通:(
解决方法
我将根据给定的示例做出假设。
-
AWK
有一个输入解析器,可以通过正则表达式过滤器处理输入 -
SED
是从输入中摘录的合适工具,但AWK
在这里就足够了。
因此您修改后的代码:
awk 'BEGIN {chapter=0;chapfile="";}
/^"?CHAPTER / {
chapter++;
chapfile="Alice_book_chapter_"chapter;
printf "" > chapfile;
}
{ if (chapter -gt 0) {
print >> chapfile;
}
}' Alice_book
正如@karakfa 所建议的,awk 脚本可以简化为:
awk '/^"?CHAPTER / {
chapter++;
chapfile="Alice_book_chapter_"chapter;
}
chapter{
print > chapfile;
}
' Alice_book
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。