解释shell脚本

时间:2015-07-01 08:32:55

标签: linux shell

我试图了解以下shell脚本的作用:

/cal_

为什么输出*$[WebInvoke...]符号是什么意思?

2 个答案:

答案 0 :(得分:0)

我认为你对sed函数并不陌生。请务必阅读一些内容,例如here

sed是 s tream ed itor,用于搜索字符串中的模式。

匹配后的字符串regex匹配来匹配流中的匹配组。

在正则表达式中:

* - Wildcard. can fit any character.
$ - Matches the ending position of the string or the position just before a string-ending newline.

因此,这会在/ cal_abc中搜索以任何小写字母(a-z),任何其他字符*开头,然后是换行符或结尾的模式。

示例:

"I am a nice str" - > will find 'tr', t+r+end
"I am going to wall st.\nSince I heared you get the best money there" ->st., t+.+newline
"an end is just a new start" - no match for the $ sign.

编辑 / s - 替换将使用新提示替换这些,这就是您看到的更改。

答案 1 :(得分:0)

第一个s并不意味着从s开始。它是sed的命令。实际上sed的第一部分(在这个例子中是s)是命令

$ man sed

S /的regexp /更换/

尝试将regexp与模式空间匹配。

解释答案

echo /cal_sabc | sed -e 's/[a-z]*$//'
  1. s =>我们想要替换

  2. 你想要替换什么? 每个字符串只包含az而且它没有任何其他东西(它没有 _ )和一个ELSE条件:我希望它在结束时line($是行尾)

  3. 然后你想在那个字符串的位置写什么? NOTHING。
  4. 如果你想写两个而不是写两个// echo / cal_sabc | sed -e' s / [a-z] * $ /我听见/'