我试图了解以下shell脚本的作用:
/cal_
为什么输出*
? $
和[WebInvoke...]
符号是什么意思?
答案 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
尝试将regexp与模式空间匹配。
echo /cal_sabc | sed -e 's/[a-z]*$//'
s =>我们想要替换
你想要替换什么? 每个字符串只包含az而且它没有任何其他东西(它没有 _ )和一个ELSE条件:我希望它在结束时line($是行尾)