Macos 有关山狮的问题
我试图删除文件中的一行,如下所示: 在CNAME mydomain.com上测试1800 我正在山狮上使用sed,我正在尝试以下操作,但我一直没有收到任何错误,但是该行没有被删除Macos 有关山狮的问题,macos,shell,unix,Macos,Shell,Unix,我试图删除文件中的一行,如下所示: 在CNAME mydomain.com上测试1800 我正在山狮上使用sed,我正在尝试以下操作,但我一直没有收到任何错误,但是该行没有被删除 sed -i -e '/$regex/d' $file 或 其中,$regex是包含上面提到的行的表达式,$file是该行所在文件的名称 任何帮助都将不胜感激。这是一个近乎重复的答案,最简单的答案如下: sed -e '/$regex/d' $file >$file.tmp && mv $fil
sed -i -e '/$regex/d' $file
或
其中,$regex是包含上面提到的行的表达式,$file是该行所在文件的名称
任何帮助都将不胜感激。这是一个近乎重复的答案,最简单的答案如下:
sed -e '/$regex/d' $file >$file.tmp && mv $file.tmp $file
…原因和优势都在这里。当您关心可移植性时,是一个很好的资源,因为它描述了unix命令的一个常见子集,它通常受到令人沮丧的限制,但在您可能遇到的所有unix中都非常可靠。Mountain Lion(v10.8.2)可以很好地与sed-i”“-e'/$regex/d'$file
[Mar 12 17:22] [jnovack@growlithe ~]$ more test.php
<?php
echo "Test php echo 1";
echo "Test echo 2";
?>
[Mar 12 17:22] [jnovack@growlithe ~]$ sed -i "" -e "/php/d" test.php
[Mar 12 17:22] [jnovack@growlithe ~]$ more test.php
echo "Test echo 2";
?>
[Mar 12 17:22][jnovack@growlithe~]$more test.php
[三月十二日17:22][jnovack@growlithe~]$sed-i”“-e”/php/d“test.php
[三月十二日17:22][jnovack@growlithe~]$more test.php
回波“测试回波2”;
?>
在我看来,最可能的问题是,您有一个shell变量$regex
,其中包含要搜索和删除的模式,但您的单引号阻止了shell对其进行扩展。您可能需要使用:
sed -i .bak -e "/$regex/d" $file
(Lion and Mountain Lion上的BSD
sed
支持-i
选项。手册页面建议不要使用零长度备份扩展。)
-i扩展名
就地编辑文件,以指定的扩展名保存备份。如果是长度为零的扩展名
如果给定,则不会保存备份。不建议在以下情况下提供零长度扩展:
就地编辑文件,因为在磁盘
空间耗尽等
可能重复查看链接帖子,-我不会使用BSD sed(OSX使用)。狮子和山狮上的BSD
sed
具有-i
选项。
sed -i .bak -e "/$regex/d" $file