gpt4 book ai didi

windows - sed 不能在 Windows 的脚本文件中工作

转载 作者:可可西里 更新时间:2023-11-01 11:39:23 25 4
gpt4 key购买 nike

我曾经写过这样一个简单的 sed 命令

s/==/EQU/

当我在命令行中运行它时:

sed 's/==/EQU' filename

它运行良好,将“==”替换为“EQU”,但是当我将命令写入名为 replace.sed 的脚本文件时,以这种方式运行它:

sed -f replace.sed filename

有错误,说是

sed: file replace.sed line 1: unknwon option to 's'

我想问的是,我的脚本文件replace.sed在windows下运行有问题吗?

最佳答案

未知选项几乎总是在尾随 / 之后的流氓字符(顺便说一句,您的命令行版本中缺少它,因此它应该提示未终止的命令)。

再看看你的replace.sed。你可能在末尾有一个有趣的字符,如果你忘记删除它,它可能包括 ',甚至是 CTRL-M DOS 风格的行结束,虽然 CygWin似乎可以很好地处理这个问题 - 你没有指定 哪个 sed 你正在使用(这可能有帮助)。


好的,根据您的编辑,看起来我的建议之一是正确的:-) 由于 CR/LF 行尾,您在行尾有 CTRL-M :

At the end of each line in the *.sed file, there was a 'CR\LF' pair, and that the problem, but you cannot see it by default, I use notepad to delete them manually and fix the problem. But I have not find a way to delete it automatically or do not contain the 'new-line' style while edit a new text file in windows.

您可能想要使用更强大的编辑器,如 Notepad++ 或 gVim(我最喜欢的),但事实上,您确实有一个可以摆脱这些字符的工具:-)它叫做 sed

sed 's/\015//g' replace.sed >replace2.sed

应该从文件中删除所有 CR 字符,并为您提供可用于实际工作的 replace2.sed

关于windows - sed 不能在 Windows 的脚本文件中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com