Mac用户注意了,你的sed命令...

简介: Mac用户注意了,你的sed命令...

MacOS 上使用 sed 命令时与 linux 上并不相同,一定要主要!

当我们在使用 sed 对文本内容进行替换操作时(比如进行全局替换),一般如下:

sed -i "s#err#right#g" test_sed.txt

test_sed.txt 文件中的 err 全部替换为 right

但是在 MacOS 上输出上面的命令,会报错如下:

sed: 1: "test_sed.txt": undefined label 'est_sed.txt'

原因是:在 MacOS 上使用 sed 命令时参数不同

使用方法:要达到与上述命令相同结果,只需像下面这样:

sed -i '' "s#err#right#g" test_sed.txt

第一个参数为是否需要备份,如果填空不进行备份;一旦填入内容,将生成一个以填入内容为后缀的备份文件。

如要生成备份文件,命令如下:

sed -i '.bak' "s#right#err#g" test_sed.txt

会生成一个 test_sed.txt.bak 文件,此文件内容没有更改,test_sed.txt 文件内容中所有的 right 被更改为 err

相关文章
|
7月前
|
存储 Shell
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
416 0
|
2月前
|
Linux
linux/mac 下查看、修改文件权限的命令
这篇文章介绍了在Linux和Mac操作系统下如何查看和修改文件及文件夹的权限。
79 0
|
4月前
|
网络协议
Mac根据端口查询进程id的命令
这篇文章介绍了在Mac操作系统上如何使用两种命令来查询监听特定端口的进程ID。第一种方法是使用`netstat -anp tcp -v | grep 端口号`,例如`netstat -anp tcp -v | grep 80`,这将列出所有使用端口80的TCP连接及其相关信息。第二种方法是使用`lsof -P -n -i:端口号`,例如`lsof -P -n -i:8080`,这将显示使用指定端口的进程列表,包括进程ID、用户、文件描述符等信息。文章通过示例展示了如何使用这些命令,并提供了输出结果的截图。
349 2
Mac 下终端命令无法使用的问题
Mac 下终端命令无法使用的问题
200 1
|
7月前
|
Shell 测试技术 Python
在Mac上用Python调用终端执行命令
在Mac上用Python调用终端执行命令
304 1
|
6月前
|
NoSQL Java 网络安全
Redis在java(Maven)中使用,常用基本命令大全,最全Termius怎么进行端口映射(MAC系统最简单教学)
Redis在java(Maven)中使用,常用基本命令大全,最全Termius怎么进行端口映射(MAC系统最简单教学)
|
移动开发 Unix Linux
sed命令在Mac和Linux下的不同
sed命令在Mac和Linux下的不同
93 0
|
7月前
|
存储 搜索推荐 Shell
mac下终端命令提示补全
mac下终端命令提示补全
391 0
|
7月前
|
Shell Docker 容器
mac终端命令补全设置(docker 命令补全)
mac终端命令补全设置(docker 命令补全)
160 0
|
数据可视化 应用服务中间件 nginx
Mac使用命令可视化编辑文件(open命令)
Mac使用命令可视化编辑文件(open命令)
102 0