在没有备份文件的情况下使用sed-imacosx
我发现这个帖子: 它提供了在MacOSX上使用sed-i的解决方案,这样它就不会在搜索和替换命令上创建备份文件 例如:。, 请注意用于指定零长度扩展名的singlequote空格singlequote after-i选项:在没有备份文件的情况下使用sed-imacosx,macos,sed,Macos,Sed,我发现这个帖子: 它提供了在MacOSX上使用sed-i的解决方案,这样它就不会在搜索和替换命令上创建备份文件 例如:。, 请注意用于指定零长度扩展名的singlequote空格singlequote after-i选项: sed -i ' ' 's/foo/|bar/g' test.html 我的问题-这确实为我创建了一个备份文件,它使备份文件与我的输入文件“test.html”同名 我需要在许多文件上运行搜索/替换,我不需要备份文件 这是我的实际命令: sed -i ' ' "s|res
sed -i ' ' 's/foo/|bar/g' test.html
我的问题-这确实为我创建了一个备份文件,它使备份文件与我的输入文件“test.html”同名
我需要在许多文件上运行搜索/替换,我不需要备份文件
这是我的实际命令:
sed -i ' ' "s|research/projects/vertebrategenome/havana/|science/groups/vertebrate-annotation|g" test2.html
我在mac上得到了一个名为“test2.html”的备份文件,您得到了sed的BSD版本。它需要包含一个空字符串作为-i的参数。注意,在linux上,它很乐意接受没有扩展名的-i 在Linux上:
sed -i 's|StringToReplace|ReplacedString|'
在MacOSX/*BSD上
sed -i '' 's|StringToReplace|ReplacedString|'
请注意,您需要的是空字符串(“”),而不是空字符串(“”)。我发现在Linux和Mac上使用相同脚本的最佳方法是:
sed -i.bak -e 's/foo/bar/' -- ${TARGET}
rm ${TARGET}.bak
如果两个
字符之间有一个空格字符
,请删除该空格,然后只使用-i'
。另外,您如何知道您有一个备份文件,请编辑Q以包含ls-ls firstfileinder*
的输出。祝你好运。@cath,如果对你有用的话,介意把答案标记为接受答案吗?Thanks@atifm-谢谢!我点击了绿色复选框,我想这是正确的。