mac上执行sed的编辑 -i命令报错sed: 1: "test.txt": undefined label ‘est.txt’或sed: 1: "2a\test\": extra characters after \ at the end of a command

问题一

sed编辑命令:【sed -i ‘s/a/b/g‘ test.txt】

报错:sed: 1: "test.txt": undefined label ‘est.txt‘

解决方案:增加一个备份的追加名【sed -i ‘.bak‘ ‘s/a/b/g‘ test.txt】

原因:mac强制要求备份,否则报错

当然可以不使用其他备份名字,只是用’‘,就可以只保留一份

sed -i ‘’ ’s/a/b/g’ test.txt

问题二

sed追加命令:【sed -i ‘‘ "/a/a\xxx” test.txt】匹配到a字符后追加xxx内容

报错:sed: 1: "2a\test\": extra characters after \ at the end of a command

解决方案:在追加内容前换行,且要用双斜杠\\

sed -i ‘‘ "/a/a\\

xxx" test.txt

但是这又有一个新的问题,追加的内容是显示在下一行的前面,没有独立占据一行

使用\\n啊\n什么的都无效,其实只要在字符串后面直接输入\\然后回车换行就有效了,如下图所示。

备注:在某一行前插入用/i,例如在匹配到a的前面一行加入yyy

sed -i ‘‘ "/a/i\\

xxx" test.txt

mac上的sed -n之类的与linux系统上使用方法一样

时间: 2024-12-05 22:11:49

mac上执行sed的编辑 -i命令报错sed: 1: "test.txt": undefined label ‘est.txt’或sed: 1: "2a\test\": extra characters after \ at the end of a command的相关文章

MySQL执行外部sql脚本文件命令报错:unknown command '\'

由于编码不一致导致的 虽然大部分导出是没有问题的 但是数据表中存储包含一些脚本(富文本内容)会出现该问题,强制指定编码即可解决. mysql导入时指定编码: mysql -u root -p --default-character-set=utf8 或者在导出时后显式指定编码就不存在这个问题了: mysqldump -uroot -p --default-character-set=utf8 mydb > E://xxxx.sql MySQL执行外部sql脚本文件命令报错:unknown com

执行ng build --prod --aot命令报错

D:\git\**\src\main\iui>ng build --prod --aotHash: 257ab60feca43633b6f7Time: 25358mschunk {0} polyfills.221420fde500aaed5079.bundle.js (polyfills) 184 kB {5} [initial] [rendered]chunk {1} scripts.92391f7b3a5602225e85.bundle.js (scripts) 185 kB {5} [in

mac上运行php文件中的date()报错问题

学习PHP这门技术,本人新手一枚,踩到一坑,在此记录一下:  Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you a

安装atlas后执行hive命令报错

在集群中安装atlas,在安装atlas的节点上执行hive -e "show databases;" 正常,但是在集群中其他节点上执行hive -e "show databases;" 命令报如下错误 一.分析 在安装atlas节点上和没有安装atlas的节点上分别再次执行hive --hiveconf hive.root.logger=DEBUG,console -e "show databases;" 命令,获取执行日志,比较日志看看是否什

CURL命令报错:dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings解决办法

Mac OS X 10.11.6, curl 命令报错,错误如下: dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings Referenced from: /usr/local/lib/libcurl.4.dylib Expected in: flat namespace dyld: Symbol not found: _SSL_load_error_strings Referenced from:

执行 maven 命令 报错Unable to add module to the current project as it is not of packaging type 'pom'[转]

今天学习在本地搭建Maven工程时,执行了mvn archetype:generate 命令,报错. Unable to create project from archetype [org.apache.maven.archetypes:maven-archetype-quickstart:1.1] Unable to add module to the current project as it is not of packaging type 'pom' 上网搜资料发现一个帖子,问题解决:

191016 Linux中python2升级到python3导致yum命令报错

因为python2到python3的升级,导致使用yum相关的命令时报错: 报错一: command not found... 方案:修改/usr/bin/yum文件的第一行,将结尾的python改成python27(或python2.7),请自行尝试,修改后能查询yum版本即可: 报错二:cannot retrieve matalink for repository:epel/x86... 方案:sed -i ‘s#https://#http://#g' /etc/yum.repos.d/ep

hadoop命令报错:权限问题

root用户执行hadoop命令报错: [[email protected] conf]# hadoop fs -ls /user/ [INFO] 17:50:42 main [RetryInvocationHandler]Exception while invoking getFileInfo of class ClientNamenodeProtocolTranslatorPB over vmocdp127.test.com/172.16.145.127:8020. Trying to fa

windows下使用GNU make命令报错的解决方法

windows下使用GNU make命令报错的解决方法=> 错误信息:make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3) ## 1.原因环境变量中配置了`D:\Program Files (x86)\Git\bin`,该目录下存在一个`sh.exe` 在执行make命令时,如果在`MakeFile`文件中没有指定shell的路径,`make`就会到环境变量中,去找一个`X:\\XXX\XXX\sh.exe`作