【发布时间】:2010-11-23 18:06:32
【问题描述】:
我目前正在编写一个批处理脚本来读取和修改 Windows 中的一些配置文件。谢天谢地,我可以使用它,因此我可以将它用于我必须做的大部分事情,尽管由于环境而有些怪癖。
我要执行的语句是:
sed '/\[$/{:loop N /^^]/!b loop} s/\n//g'
理论上应该删除带有方括号的行之间的行上的任何换行符。我在这里使用双插入符来逃避并使用第二个插入符(cmd.exe 的怪癖)。但是它失败并出现以下错误:
sed: -e expression #1, char 15: extra characters after command
在测试其他一些语句时,我得到了以下结果。
sed '/\[/{ s/.*//g }' – 完全按照应有的方式执行
sed '/\[/{ N } s/.*//g' – 以sed: -e expression #1, char 11: extra characters after command 失败
sed 's/^^ */^&\n/ :loop s/.*/asdf/ b loop' – 以 sed: -e expression #1, char 12: unknown option tos'` 失败
我只是不确定我的主要语句的错误是由于我搞砸了语法,还是仅仅因为我在 Windows 中。您能提供的任何想法或帮助都会很棒。
【问题讨论】:
-
我同意 SiegeX。 +1 包括所有相关信息(特别是双克拉和您使用 cmd.exe 的事实)。
标签: windows regex unix sed cmd