为了账号安全,请及时绑定邮箱和手机立即绑定

关于Linux shell的两个问题

关于Linux shell的两个问题

醉卧遥峰丶 2018-03-15 11:12:16
1.在《实例妙解Sed和Awk的秘密》3-7里面介绍了一段代码:sed  's/\(^[a-z]\+\):.*$/\1/'  passwd含义是用sed的分组方法提取passwd文件的用户名列,我在自己练习的时候,想当然的加了-n 参数,结果发现输出结果为空,请问是什么逻辑呢?2.同样是sed命令,我发现-n 和 -i两个参数同时使用,会直接将修改行的内容覆盖原文件,导致原文件内容消失,请问这又是什么逻辑呢?
查看完整描述

1 回答

已采纳
?
卧龙绝圣

TA贡献65条经验 获得超25个赞

个人理解:
1. -n是取消了自动打印,会打印新增的列,这条命令没有新增的列,所以打印为空
2. -i的作用就是直接修改原文件

查看完整回答
反对 回复 2018-03-15
  • 醉卧遥峰丶
    醉卧遥峰丶
    1. 查资料,-n即-quiet和--silent 静默输出,只输出命令处理过的行 那么我的命令,应该是没有进行操作,所以才不输出 如果想在加-n的前提下,同时输出结果的话,需要对字符串加操作命令,比如s///p,就可以输出了 2.-n -i同理,由于没有对之前内容进行操作,所以没有输出,然后又把这个没有输出的结果写入了源文件,所以才导致被覆盖的 想了半天才想通,不过还是谢谢你啊
  • 1 回答
  • 1 关注
  • 1000 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信