【问题标题】:How does sed interpret the following statementsed如何解释以下语句
【发布时间】:2017-10-28 12:54:52
【问题描述】:

向所有开发者致敬,

请原谅我回答这个问题,但我是个小菜鸟,说到 shell 脚本,我还在学习(请多多包涵)。

好的,长话短说...我在某人的脚本中遇到了这个 shell 命令:

sed -e 1,\$s/a/${b}  myfile > myfile_1

1 代表什么?并且“\”是否会转义字符“$”?

感谢开发者。

【问题讨论】:

  • 感谢赛勒斯的提示:D

标签: shell unix sed ksh gnu


【解决方案1】:

这取决于行的执行位置。

假设它在bashksh 或类似的东西中执行,该行表示执行sed,脚本1,$s/a/ 附加shell 变量b 的内容。显然,b 的值应该终止s 指令,否则sed 会报错。

如果不知道b 的值,就不可能知道脚本会做什么——它可以简单地完成s 指令,用于在每一行替换a,但它可以包含任意数量的附加说明。

【讨论】:

  • 另外,1,$ 在我看来不是必需的,因为它说“对每一行都这样做”,无论如何这是默认行为。
  • @shinobi 谢谢你的解释,现在更清楚了。
  • @Benjamin W. 谢谢,我刚刚重写了删除不必要指令“1,$”的命令。
猜你喜欢
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 2016-11-27
  • 2014-05-16
  • 2016-09-29
  • 1970-01-01
相关资源
最近更新 更多