LA_*_*LA_ 39 macos bash sed osx-mavericks
我使用以下sed命令替换文件中的文本:
sed -i -e 's/noreply@\(.*\).example.com/noreply@example.com/' cron.yaml
Run Code Online (Sandbox Code Playgroud)
但它会cron.yaml在名称下创建文件的备份cron.yaml-e.
我试图-i走到最后:
sed -e 's/noreply@\(.*\).example.com/noreply@example.com/' -i cron.yaml
Run Code Online (Sandbox Code Playgroud)
但在这种情况下会sed返回错误.
我应该如何修改命令行以避免创建备份文件?
Mar*_*ngh 73
根据手册页,您应该在macOS上指定零长度扩展
sed -i '' -e 's/noreply@\(.*\).example.com/noreply@example.com/'
Run Code Online (Sandbox Code Playgroud)
小智 5
在 Windows 上,当输入以下任何内容时,GNUWIN32 sed 会失败:
sed -i "s/WhatToFind/WhatToPut/g" ".\MyDir\*"
sed -i.BackUp "s/WhatToFind/WhatToPut/g" ".\MyDir\*"
备份始终在实际文件夹上创建,文件名模式为sed$$$$$$,其中六个 $ 代表随机字母和数字。
我看不出它根本不创建任何备份,既不创建可以知道哪个文件是源的备份,也不在与源文件相同的文件夹中创建备份。
它还尝试sub-folders按原样读取files,当然也显示了impossible to read这样的消息sub-folders;当然,它不会递归子文件夹,它仅适用于同一文件夹中的所有子文件夹,但不适用于子文件夹上的内容(非递归)。
简而言之:-i根本没有按照预期工作。
我使用的GNUWIN32 sed版本是4.2.1,它是从以下位置下载的:http ://gnuwin32.sourceforge.net/packages/sed.htm
在Google上我发现一个网站谈论了这个BUG并建议下载一个ssed替代sed工具,我有点害怕没有official;链接到我在 Google 上找到的有关该-iBUG 的内容sed:http://www.thinkplexx.com/learn/snippet/cmd/one-liner/working-in-place-sed-option-under-windows
| 归档时间: |
|
| 查看次数: |
16149 次 |
| 最近记录: |