shell - 在 Solaris 上替代 `sed -i`

标签 shell unix sed solaris

在 Linux sed -i将修改输入文件到位。但是,它在 Solaris 上不起作用。

sed -i '$ s/OLD/NEW/g' test        
sed: illegal option -- i

我可以用什么代替sed -i在 Solaris 上?

最佳答案

它与 sed -i 不完全相同,但我遇到了类似的问题。您可以使用 perl 执行此操作:

perl -pi -e 's/find/replace/g' file

执行复制/移动仅适用于单个文件。如果你想在目录和子目录中的每个文件中替换一些文本,你需要一些可以做到的东西。您可以使用 perl 执行此操作并找到:
find . -exec perl -pi -e 's/find/replace/g' '{}' \;

关于shell - 在 Solaris 上替代 `sed -i`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576380/

相关文章:

python - 在文件中的每一行之后添加额外的行

linux - 如何使用 SED 解析 xml 同级元素值

ruby - Process.spawn child 没有收到 TERM

linux - 在 shell 脚本中导出路径变量

C:在接收到信号时停止执行并跳转到程序中的特定点

linux - 有没有unix程序可以转换各种HH :MM:SS formats to seconds?

bash - 如何在 Bash 中将变量设置为命令的输出?

正则表达式模式替换

c - 在 linux 中只允许启动一个程序副本

perl - 收集具有相似列的数据