Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 有关山狮的问题_Macos_Shell_Unix - Fatal编程技术网

Macos 有关山狮的问题

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

我试图删除文件中的一行,如下所示:

在CNAME mydomain.com上测试1800

我正在山狮上使用sed,我正在尝试以下操作,但我一直没有收到任何错误,但是该行没有被删除

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