欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

自己亲自做的 mac sed 使用 -i 时 会报错 AG chatgpt 有大用 有大大用

在macOS 12上,sed命令使用-i参数时可能会报错,因为在macOS 12中,sed命令的-i参数需要指定一个备份扩展名。如果你想直接修改文件,而不需要备份,可以使用一个空字符串作为备份扩展名。

例如,你可以使用以下命令来在macOS 12上使用sed命令直接修改文件:

sed -i '' 's/foo/bar/g' filename

在这个命令中,'s/foo/bar/g'是你要执行的替换命令,而filename是你要修改的文件名。如果你想备份原始文件,可以将''替换为一个备份文件的扩展名,例如'.bak',这样原始文件的备份将被创建。



sed [option] 'AddressCommond' file.....

    -n:--quiet, --silent静默模式 不再显示模式空间的内容(命令让它处理什么它就显示什么)                

                  -n, --quiet, --silent

                  suppress automatic printing of pattern space

    -i:  --in-place直接修改原文件 (这个很危险,需谨慎)

    -e SCRIPT  -e SCRIPT: --expression可以同时执行多个脚本 (把'AddressCommond'  称作脚本)



bbbb-admin@bbbb-admindeMac TEST % sed  -i 's#2000#10#' sftp_login_18.5_22.command       # 会报错

sed: 1: "sftp_login_18.5_22.command": unterminated substitute pattern

bbbb-admin@bbbb-admindeMac TEST % sed  -i 's#2000#10#' test.txt                  #  会报错

sed: 1: "test.txt": undefined label 'est.txt'


bbbb-admin@bbbb-admindeMac TEST % sed -i '' 's#2000#10#' test.txt             #正常执行

bbbb-admin@lbbbb-admindeMac TEST % 




普通分类: