导航:首页 > 程序命令 > sed命令错误

sed命令错误

发布时间:2023-03-28 08:09:22

㈠ sed -i .bak 's/this/the/' d 这条命令有错误吗

这是很早之前的一个问答了,但我想提问者并没有真正的搞清楚原因,而采纳的答案我想也并不是你想要的,这里我想说下我的答案。

查看$ man sed,可以看到里面对于-i选项这么写的:

-i[SUFFIX],--in-place[=SUFFIX]
editfilesinplace(makesbackupifSUFFIXsupplied)

所以可以知道出现问题的原因在于,你的命令中-i和后面的.bak之间多了一个空格,正确的写法应该是没有空格的,如下:

sed-i.bak's/this/the/'d

你可以试下,想必可以得到你期待的结果。另外.bak也可以用.和其它的任意文本结合使用,比如.backup或者.log 等等都是可以的。

希望可以帮助到以后还遇到这个问题的人。

㈡ sed命令在macOS Seirra上报错sed: -i may not be used with stdin

MacOS使用的是sed的BSD版本,它对-i选项答核的处理略有不同。

sed -i需要带一个局饥字符串作为备份源文件的文件名称,如果这个字符串长度为0,则不备份。

例如修改filename.txt,清腊掘

使用命令格式:sed -i "_bak" '动作' filename.txt

输出为filename.txt_bak(同原文件)和filename.txt(修改后的文件)。

如果不想输出备份文件:sed  -i  ""  '动作'  filename.txt

参考文章:https://blog.csdn.net/fdipzone/article/details/51253955

㈢ 关于Linux里的sed命令。

Sed is a nondestructive editor. It will display the edits you make on your screen, but it will not change the file you are editing. To really reflect the edits in the file, you must redirect the output to another file, and then rename the orginal file
sed的特点就是非破坏(nondestructive),流水行(streamlined),非交互(noninteractive)的编辑器。
非破坏就是指不会修改原文件,它会将修改的结果标准输出到屏幕上,你如果想保存,需要使用IO重定向的方式保存:
如:
sed ‘s/home/home1’ 1.txt >2.txt
这样做的原因是,如果你修改了原文件的话,你没法使用word,vim,txt的undo功能撤销修改,恢复原来的文件。所以,sed会将修改之后的文件输出到屏幕,你看到修改满意的话,再重定向到其他文件。就完成了修改。明白否?
-e是启用多行命令 上述两条编辑命令都是一行命令,所以看不出效果。

阅读全文

与sed命令错误相关的资料

热点内容
科技编译原理动画 浏览:643
精彩发现app里怎么投保意外险 浏览:145
美国电影爱情电影尺度大的 浏览:376
8个人在一个名为列车上 浏览:968
杨浦区少儿编程 浏览:944
免登录php网盘源码 浏览:422
王的命令在线观看全集 浏览:927
西安市社保卡APP叫什么 浏览:605
怎么关掉华为手机自动更新app 浏览:906
韩国19禁 浏览:180
有部电影叫什么长生 浏览:458
磁盘加密的过程中能使用吗 浏览:352
用乐高拼一个小小的解压球 浏览:22
显示服务器读取超时怎么办 浏览:501
残芯twrp解压密码 浏览:162
数控车智能编程 浏览:979
php正则表达式匹配任意字符 浏览:320
在文件夹什么word文档 浏览:991
刺激爱情片 浏览:644
电影迷途少女微笑片段 浏览:722