Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
Bash 从MAC OS中的命令行写入文件中的特定行_Bash_Macos_Shell_Sed_Command Line - Fatal编程技术网

Bash 从MAC OS中的命令行写入文件中的特定行

Bash 从MAC OS中的命令行写入文件中的特定行,bash,macos,shell,sed,command-line,Bash,Macos,Shell,Sed,Command Line,我已经搜索了一点,我在这里找到了答案 但当我尝试执行此命令sed-I'5ianything'file1.txt时,它将不起作用,并显示一条错误消息: sed: 1: "file1.txt": invalid command code f 当我使用另一个命令sed-I'5i\anywhere'file1.txt时,也会出现相同的错误消息 我不知道为什么它对我不起作用我错过了什么吗? 还有别的办法吗 编辑 我尝试了注释中提供的解决方案,并运行了此命令,但不幸的是,即使这样也无法

我已经搜索了一点,我在这里找到了答案

但当我尝试执行此命令sed-I'5ianything'file1.txt时,它将不起作用,并显示一条错误消息:

sed: 1: "file1.txt": invalid command code f
当我使用另一个命令sed-I'5i\anywhere'file1.txt时,也会出现相同的错误消息

我不知道为什么它对我不起作用我错过了什么吗? 还有别的办法吗

编辑 我尝试了注释中提供的解决方案,并运行了此命令,但不幸的是,即使这样也无法工作

sed -i.bu '5i\anything' file1.txt
    sed: 1: "5i\anything": extra characters after \ at the end of i command  
这是我的file1.txt:

1. alloha I want some cheese
2.
3. this is just a test and you know it
4. 
5. this line will change sooooo sooooooon
6. 
7. daaaamn, it changed I mean that line above me daaaaamn
编辑 我在sed的OSX手册页中搜索了一下后,发现:

-i extension
             Edit files in-place, saving backups with the specified extension.  If a zero-length extension is given, no backup will be saved.  It is not recommended
             to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.

对于BSD/Mac sed,提供就地更换的参数-i选项:

或者,若要在不创建备份的情况下替换原始文件,请将空字符串传递给-i,您应首先在不使用-i的情况下测试此文件,并验证其是否按预期工作:

sed -i '' '5i\
anything' file1.txt

您使用的是gnu sed的最新版本吗?sed-V怎么说?@match实际上甚至sed-V在我的终端上都不工作,我收到了错误消息sed:非法选项-V我在mac上工作是你要找的吗?@Chipster不,即使那对我也不起作用你需要一条新的线路,在那之后\不幸的是,我什么都不起作用,我尝试了这两种方法,但都出现了相同的错误:sed:1:5i任何东西:command I expected\follower textYeah现在在您添加了一行新行之后,它工作得非常好,您能为我推荐一个文档,解释为什么在mac.GNU中会发生这种情况。sed在中有文档记录。BSD sed的手册页面比GNUs文档更不全面
sed -i '' '5i\
anything' file1.txt