FreeBSD sed 错误编辑文件到位
FreeBSD sed error editing files in place
出现错误,尝试使用 sed
使用 FreeBSD
就地编辑文件
sed: -I or -i may not be used with stdin
# Hello World Program in Bash Shell
# This is a Linux Machine
#cat /proc/version
#Linux version 3.10.0-229.7.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Tue Jun 23 22:06:11 UTC 2015
echo "Hello World!"
FILE=new.txt
FOO=/var/foo
VAR=/var
sed -i.tmp '/LD_LIBRARY_PATH={$stdlib}/a\'$'\n''LD_32_LIB_PATH='"$FOO"'\nldd '"$VAR"'' $FILE
我正在尝试 运行 sed
在 RedHat Linux 机器上运行良好的搜索模式后就地追加。
我正在尝试 运行 在 FreeBSD 机器中执行相同的命令(详细信息 FreeBSD 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #0: Fri Jan 14 11:35:15 EST 2011
),但出现上述错误。
FreeBSD 不支持标准输入的就地替换吗?
在 FreeBSD 上 tcsh
是标准的 shell,而不是 bash
。
在 tcsh
中设置变量是用 set
完成的,而不是简单的 =
。
因此,当您 运行 此脚本时, FILE
变量未设置,它会尝试编辑标准输入。
-i
标志创建就地编辑文件的备份。这在像 stdin 这样的流的上下文中没有意义。因此出现错误消息。
出现错误,尝试使用 sed
使用 FreeBSD
sed: -I or -i may not be used with stdin
# Hello World Program in Bash Shell
# This is a Linux Machine
#cat /proc/version
#Linux version 3.10.0-229.7.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Tue Jun 23 22:06:11 UTC 2015
echo "Hello World!"
FILE=new.txt
FOO=/var/foo
VAR=/var
sed -i.tmp '/LD_LIBRARY_PATH={$stdlib}/a\'$'\n''LD_32_LIB_PATH='"$FOO"'\nldd '"$VAR"'' $FILE
我正在尝试 运行 sed
在 RedHat Linux 机器上运行良好的搜索模式后就地追加。
我正在尝试 运行 在 FreeBSD 机器中执行相同的命令(详细信息 FreeBSD 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #0: Fri Jan 14 11:35:15 EST 2011
),但出现上述错误。
FreeBSD 不支持标准输入的就地替换吗?
在 FreeBSD 上 tcsh
是标准的 shell,而不是 bash
。
在 tcsh
中设置变量是用 set
完成的,而不是简单的 =
。
因此,当您 运行 此脚本时, FILE
变量未设置,它会尝试编辑标准输入。
-i
标志创建就地编辑文件的备份。这在像 stdin 这样的流的上下文中没有意义。因此出现错误消息。