sed -i选项不适用于solaris

Raj*_*Raj 9 unix solaris sed

我使用sed替换文件中的NULL行.我使用的命令是

sed -i "s/.*shayam.*//g" FILE
Run Code Online (Sandbox Code Playgroud)

这在linux中工作正常.shayam在FILE中替换为空白.但是当我在solaris中使用它时,它显示出一些错误.

sed:非法选择 - 我

如何在solaris中使用sed的-i功能.请帮助.

cam*_*amh 11

-i选项是GNU特定的.Solaris版本不支持该选项.

您需要安装GNU版本,或者将旧文件重命名为旧文件:

sed 's/.shayam.//g' FILE > FILE.new && mv FILE.new FILE
Run Code Online (Sandbox Code Playgroud)


小智 11

我刚回答了一个类似的问题sed -i + SOLARIS中的相同选项,但对于那些找到这个线程的人(我在相关的线程部分看到它):

我看到的大多数答案的主要问题是如果你想修改多个文件它不起作用.我在另一个帖子中给出的答案:

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

perl -pi -e 's/find/replace/g' file
Run Code Online (Sandbox Code Playgroud)

执行复制/移动仅适用于单个文件.如果要在目录和子目录中的每个文件中替换一些文本,则需要执行某些操作.您可以使用perl执行此操作并找到:

find . -exec perl -pi -e 's/find/replace/g' '{}' \;
Run Code Online (Sandbox Code Playgroud)