记录一下这个小脚本,试探了很久才研究出这个方法来给我的一个xml文件编号。
这个文件最初是从博客上直接复制粘贴下来的,根据其格式先对其html tag替换做好标记,然后用一句sed转换成xml的:
cat susan.txt|
sed -e 's/title\(.*\)$/<\/content>\r\n<\/blog>\r\n<blog>\r\n<title>\1<\/title>/'|
sed -e 's/timestamp\(.*\)/<timestamp>\1<\/timestamp>\r\n<content>/'|
sed -e 's/[ ]+/ /' > susanfmt.xml
当然,还要稍作调整。
declare -i j=1
for ((i=$(cat susanfmt.xml|tee susanalt.xml|wc -l);i>=1;i--))
do
sed -i -e "$i""s/<blog>/<blog id==\"$i\">/" susanalt.xml
grep "<blog id==\"$i\">" susanalt.xml
if [ $? -eq 0 ]
then
sed -i -e "$i""s/<blog id==\"$i\">/<blog id=\"$j\">/" susanalt.xml
j=$j+1
fi
done
但接着我需要对博客进行编号,即每一个<blog>我都需要变成<blog id="编号">,sed自己是干不了了,所以结合一点Bash:以上,先将目的文档susanfmt.xml复制到susanalt.xml,同时计算出行数。从最后一行到第一行,先将遇到的<blog>替换成<blog id=="该行行数">,注意多了一个=号,这是防止与最终结果相冲突。这明显不是我们要的,用grep的返回值确认的确做了一次替换后,将id=="行数"改成id="编号"。有点怪异,而且重复工作也多,效率较低,但是这是目前唯一想到的办法。
分享到:
相关推荐
下面是一个基本的shell脚本示例,演示如何使用awk和sed修改JSON文件中的某个字段值: ```bash #!/bin/bash # 定义要修改的JSON字段名和新的值 field_to_change="name" new_value="新名称" # 使用awk定位含有字段...
`bash-doxygen` 是一个专门为Bash脚本设计的Doxygen过滤器,它使得我们可以使用Doxygen这个强大的文档生成工具来为我们的shell脚本生成结构化的、易于理解的文档。Doxygen通常用于C++、Java等面向对象语言,但通过...
3. **sed命令**:Stream Editor,简称sed,是一个流式文本编辑器,能够对输入流(标准输入或其他文件)进行读取、处理并输出。它广泛用于文本替换、查找、删除、打印等操作,是Linux/Unix系统中强大的文本处理工具。...
标题中的"mod_icd_node.zip_MOD_xml icd"暗示了这是一个关于修改ICD(接口控制描述符)文件的模块,其中可能包含与XML处理相关的脚本。ICD文件通常用于定义设备之间的通信协议,特别是在嵌入式系统和硬件接口设计中...
这本质上是一个围绕自定义 pandoc 编写器和模板的 bash 包装器、一个简单的正则表达式(使用sed )和一个 XSL 脚本。 它将 Markdown 文件转换为符合 TEI Lite 标准的 XML 文件。 问题/拉取请求,欢迎。 要求 为了...
Shell脚本是Linux系统中的一种批处理程序,它允许用户编写一系列命令并将其保存为一个文件,通过执行这个文件来完成自动化任务。编写Shell脚本通常涉及变量定义、条件判断、循环结构、函数定义等元素。在我们的场景...
- `-e` 或 `--expression`: 添加一个 sed 脚本到执行列表中。 - `-f` 或 `--file`: 指定一个包含 sed 命令的文件。 - `-i` 或 `--in-place`: 直接修改文件。如果指定扩展名,则会在修改前创建一个备份文件。 - `-r` ...
CLI-Daily-Calendar是一个实用的Bash脚本,专为那些喜欢在命令行界面(CLI)工作的用户设计,用于从Celcat Calendar应用程序中提取并显示一天的课程表。这个脚本使得用户无需打开图形界面,就能方便地在终端中查看...
文件project.mml 和 style.mss 文件是使用 TileMill 创建的generate-xml.sh BASH 脚本使用carto 生成Mapnik XML 文件并使用sed 将TileMill 默认投影替换为OSGB 一个print-osgb.py Python 脚本使用 Mapnik 渲染地图,...
通过上述脚本,我们可以看到一个完整的Tomcat与Apache集群配置过程。这不仅包括了基础软件的安装和配置,还包括了集群关键配置的设置。这种集群配置方式可以有效提高系统的稳定性和性能,是企业级应用部署的常见方案...
1. 脚本语言:通常使用bash、perl或python等脚本语言编写。 2. 主要任务:解压应用包、复制到OC4J的应用部署目录、配置应用的context.xml、启动或重启OC4J服务。 三、脚本实现步骤 1. 准备工作:确保OC4J环境安装...
前提,日志是以日期格式命名的,可以和日期比较大小,其他情况需自行调整 ...sed -i 's/\r//' *.sh 脚本不能执行时,含有非法字符时,可以使用这个命令替换 chmod -R 755 * 授权 tar -zxvf *.tar.gz 解 tar -zcvf 压
在给定的文件列表中,我们看到的是一些项目管理和开发相关的文件,这可能是一个Java Web项目的目录结构。以下是这些文件在Linux系统脚本中可能涉及的知识点: 1. **.project**:这是Eclipse IDE的工作空间项目配置...
标题“auto_script.zip”暗示了这是一个包含自动化脚本的压缩文件,这通常是为了简化重复性任务、提高工作效率或实现系统管理的自动化。自动化脚本可以是任何编程或脚本语言编写,例如Python、Bash、Perl或者...
当我们需要在大量文本文件中快速查找并替换特定字符串时,`sed`(Stream Editor)就是一个非常强大的工具。`sed` 是一个流编辑器,它可以从输入流(通常是文件或管道)中读取数据,对数据进行处理,然后将处理后的...
4. **回送消息**:当`sed`识别到接收到的是一个新消息时,它会把原始消息作为回应发送回给发件人。这通常是通过调用客户端库的相应函数实现的。 5. **事件处理**:除了基本的消息传递,XMPP还支持如在线状态更新、...
2. **编写下载脚本**:基于获取到的URL,我们可以编写一个简单的bash脚本来循环下载每张壁纸。可以创建一个for循环,每次迭代都调用wget命令来下载壁纸。确保添加适当的延迟,以免对服务器造成过大压力。 ``` for ...
综上所述,在Linux平台下用Python开发12306抢票软件是一个复杂的过程,涉及到网络请求、数据解析、脚本编写、GUI设计等多个技术领域。开发者需要掌握这些知识点才能顺利实现软件的开发和功能实现。
`local-sitemap-generator`是一个专门用于生成XML站点地图的Shell脚本,它通过分析你的本地目录树来创建这份重要的导航文件。下面将详细介绍这个工具及其相关知识点。 1. **XML Sitemap基础知识** - XML Sitemap是...