使用sed进行非常基本的替换

使用sed进行非常基本的替换,sed,substitution,Sed,Substitution,真的很感谢你在这方面的帮助 我正在使用sed创建一个CSV文件。实际上,多个html文件都合并为一个html文件,然后使用sed删除所有垃圾图片等,以获取原始列数据 我已经完成了所有这些工作,但最后一点却被卡住了 我想做的是非常基本的-我想替换以下几行: "a variable string" "end td" "begin td" 用一行: "a variable string" (此行末尾有制表符) 我在用DOS 如你所见,我对这一切都是新手。如果我能完成这项工作,我将在未来节省大量时

真的很感谢你在这方面的帮助

我正在使用sed创建一个CSV文件。实际上,多个html文件都合并为一个html文件,然后使用sed删除所有垃圾图片等,以获取原始列数据

我已经完成了所有这些工作,但最后一点却被卡住了

我想做的是非常基本的-我想替换以下几行:

"a variable string"
"end td"
"begin td"
用一行:

"a variable string" 
(此行末尾有制表符)

我在用DOS

如你所见,我对这一切都是新手。如果我能完成这项工作,我将在未来节省大量时间,因此我将感谢您的帮助。 目前,我必须将一些html标题注入到文本文件中,在html编辑器中打开它,选择表格,然后将其粘贴到电子表格中,这有点麻烦


还有,有没有一种简单的方法可以让sed从给定的行中删除括号“(”and“)”?

我怀疑这是你真正想要的,但这是你想要的

sed "s/\"a variable string\"/&\t/; s/\"end td\"//; s/\"begin td\"//" inputfile
您可能想做的是在它们连续出现时替换它们。以下是您可以如何做到这一点:

sed "1{N;N}; /\"a variable string\"\n\"end td\"\n\"begin td\"/ s/\n.*$/\t/;ta;bb;:a;N;N;:b;$!P;N;D" inputfile
这将删除文件中的所有括号:

sed "s/[()]//g" inputfile
要选择特定的行,可以执行以下操作:

sed "/foo/ s/[()]//g" inputfile
只有当“foo”这个词在一行中的某个地方时,才会进行替换


编辑:将单引号更改为双引号,以容纳GNUWin32和CMD.EXE。

我之前留下的评论似乎未保存,因此将重试

删除(和)的代码非常有效,谢谢

你是对的-我想把3行合并成一行,所以你给出的第二个例子,它看起来像是将接下来的两行读入模式空间,看起来更有希望。然而,输出并不是我所期望的

我现在意识到代码必须更加复杂,我不想再麻烦你了,因为我手动将一些html代码注入到文本文件中,在Openoffice中打开并粘贴到电子表格只需几秒钟,我感觉手动生成sed编码将是一个非常好的方法噩梦

基本上,转换html的规则需要是: [每个标记都已格式化,因此显示在自己的行中] 我在下面给出了一个输入文件和所需输出文件的示例,以供参考

1) 如果下一行的后面紧跟着,则完全删除和行[即,不输出回车],并在下一行的开始处粘贴“a”[该行末尾的回车不重要,因为稍后将对其进行编辑]

2) 如果后面紧跟着完全删除这两行[再次不要在这些行之后输出回车],并在前一行的行开始处输出“,[不要输出回车]和下一行上的“粘贴”[不要担心结尾回车将在稍后编辑]

3) 如果后接则删除这两行,并在前一行的末尾添加“at”和最终回车

我给出了一个输入和期望输出的示例:

输入:

[需要的文件将在下一条消息中发布-此板不允许新用户发布包含多个超链接的消息!]

还有一个问题是,地址列在输入文件的多行上-通过查看下一行的第一个字符是否为“如果不是,则不要在当前行的末尾输出回车符”,可以将其减少为一行

呸,仅仅输入一段代码真是一场噩梦。但再次感谢你们在这方面的帮助!
:-)

DOS?你疯了吗?(有针对DOS的sed吗?)是的:sed允许我从HTML文件中提取部分文本,然后转储到一个新文件中。我怀疑它不是DOS,但它是Windows中的CMD shell。你不应该将不回答问题的内容发布为“答案”“。这和通常的论坛不一样。如果你需要提供额外的信息或使用评论(就像你曾经做过的那样)做出简短的回答,你应该编辑你的原始问题。我应该猜到您的示例中包含了“td”,您正在处理HTML<代码>sed不适合该作业。你应该使用一些专门用于HTML的东西(你的问题应该很清楚)。用户不能授予徽章-系统根据收到的选票等授予徽章。但是,您可以标记答案。。。。。。当你有更多的声望点时,就把它们投上去。这些都是大多数新用户不熟悉的东西,所以不要觉得我太挑剔了。有关更多信息,请阅读常见问题解答。cmd.exe不喜欢单引号
sed“…”文件
@user229426:我刚刚在
CMD
提示符下尝试了Cygwin
sed
,使用单引号效果很好。当我尝试使用GNUWin32
sed
时,我收到一个错误,抱怨单引号。我将编辑我的答案。