是否sed
可以在Linux和Mac上调用无需备份的待办事情就地编辑?虽然sed
似乎需要OS X附带的BSD sed -i '' …
,但是GNU
sed
Linux发行版通常随附将引号解释为空的输入文件名(而不是备份扩展名),sed -i …
而是需要使用引号。
是否有任何两种语法都适用的命令行语法,所以我可以在两个系统上使用相同的脚本?
如果您真的只想使用sed -i
“简单”的方法,那么以下DOES可以在GNU和BSD / Mac上运行sed
:
sed -i.bak 's/foo/bar/' filename
注意缺少空间和点。
证明:
# GNU sed
% sed --version | head -1
GNU sed version 4.2.1
% echo 'foo' > file
% sed -i.bak 's/foo/bar/' ./file
% ls
file file.bak
% cat ./file
bar
# BSD sed
% sed --version 2>&1 | head -1
sed: illegal option -- -
% echo 'foo' > file
% sed -i.bak 's/foo/bar/' ./file
% ls
file file.bak
% cat ./file
bar
显然,您可以删除这些.bak
文件。
将你下载的tar包解压,并进入coreseek子目录: $tarxzvfcoreseek-3.2.14.tar.gz $cdcoreseek 首先安装MMSeg: $cdmmseg $./configure--prefix=/usr/local/mmseg $make $makeinstall $cd.. 运行配置 程序: $./configure configure程序有很多运行选项。完整的列表
目录表 Linux和BSD用户 Windows®用户 概括 Linux和BSD用户 如果你正在使用一个Linux的发行版比如Fedora或者Mandrake或者其他(你的选择),或者一个BSD系统比如FreeBSD,那么你可能已经在你的系统里安装了Python。 要测试你是否已经随着你的Linux包安装了Python,你可以打开一个shell程序(就像konsole或gnome-terminal)
问题内容: 当类似Bash的脚本以二进制形式执行而没有shebang时,如何确定由谁执行? 我猜想 使用 shebang 运行普通脚本是由binfmt_script Linux模块处理的,该模块检查shebang,解析命令行并运行指定的脚本解释器。 但是,如果有人在没有脚本的情况下运行脚本会发生什么?我已经测试了直接方法,发现里面没有内核魔术,即像这样的文件: 运行仅执行调用的已编译C程序将产生:
问题内容: 我已成功使用以下命令在Linux中搜索/替换文本: 但是,当我在Mac OS X上尝试时,得到: “命令c期望\后跟文本” 我以为Mac运行的是普通的BASH shell。这是怎么回事? 编辑: 根据@High Performance,这是由于Mac 具有不同的(BSD)风格,因此我的问题将是如何在BSD中复制此命令? 编辑: 这是导致此情况的一个实际示例: 问题答案: 如果使用该选项
问题内容: 我在项目中使用了野牛解析器。当我运行以下命令时: 我得到此错误sed:-i可能无法与stdin一起使用 该命令在linux机器上可以正常工作。我正在使用Mac OS X 10.9。仅在Mac OS X上引发错误。我不知道为什么。有人可以帮忙吗? 谢谢 问题答案: 您需要将输入文件作为最后一个参数。
我在教科书上读到... 加减法不能导致溢出。引用一下, “如果一个数字为正数,另一个为负数,则加法后不会发生溢出,因为将正数与负数相加会产生幅值较小(…)的结果。”。 然而,通过经历一些问题,情况似乎并非如此,我想确认我计算的不是错误。 例如,这适用于4位加法减法器,其中M=1(这意味着用B减法),A=0101(5)和B=1010(10)。 通过取B=0110(-10)的2s补码并将数字相加,可以