【问题标题】:sed: make changes in the same file on Windowssed:在 Windows 上对同一文件进行更改
【发布时间】:2015-08-24 14:05:17
【问题描述】:

我在 Windows 上使用 sed(实际上是在 GitBash 下),而 this approach 不起作用。

$ sed -ibak 's/a/b/g' test1
sed: preserving permissions for `./sed004224': Permission denied

有没有其他方法可以做到这一点(或者可能解决这个问题)?
(我知道使用 perl,我们可以移动一个结果文件来替换源文件。)

UPD 1 当我“以管理员身份”运行 GitBush 时,它可以工作。实际上登录的 Windows 用户也是管理员。

【问题讨论】:

  • 这是相同的行为。 ;)
  • 试试这个 seq 10 | sed 's/$/ Love/' 看是sed问题还是test1权限
  • seq 是什么意思?但是.. 是的,这个命令存在于 unix 中。你知道,我在 Windows 上没有它。并且没有特定的权限。我想是因为进程和文件系统存在权限问题。
  • seq 10 将打印 nums 1..10
  • 我知道线程很旧,但我在 Windows 下遇到了同样的问题。解决方法是删除包含文件的目录的只读标志...

标签: windows bash replace sed


【解决方案1】:

最可能的问题是文件 test1 的权限,因此解决方案将很简单,将其更改为可写,或排除 -i 选项并重定向到可写文件夹中的新文件
sed 's/a/b/g' test1 >somepath/newfile

【讨论】:

  • 是的,我知道我们可以将输出写入某个文件,但看起来使用的是同一个文件。
猜你喜欢
  • 1970-01-01
  • 2020-07-04
  • 2022-01-04
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
相关资源
最近更新 更多