jja*_*obs 5 bash string-comparison
以下行删除变量前的前导文本 $PRECEDING
temp2=${content#$PRECEDING}
Run Code Online (Sandbox Code Playgroud)
但现在我希望它$PRECEDING不区分大小写.这适用sed的I标志.但我无法弄清楚整个cmd.
无需打电话给sed或使用shopt.这是最简单快捷的方法(只要你有Bash 4):
if [ "${var1,,}" = "${var2,,}" ]; then
echo "matched"
fi
Run Code Online (Sandbox Code Playgroud)
你所做的就是将两个字符串转换为小写并比较结果.
这是使用sed执行此操作的一种方法:
temp2=$(sed -e "s/^.*$PRECEDING//I" <<< "$content")
Run Code Online (Sandbox Code Playgroud)
解释:
^.*$PRECEDING:^表示字符串的开头,.表示任何字符,.*表示任何字符零次或多次。因此,这意味着“匹配从字符串开头开始的任何模式,后跟(并包括)存储在$PRECEDING.I部分表示不区分大小写,该g部分(如果您使用它)表示“匹配所有出现的情况”而不仅仅是第一个。<<<符号适用于此处的字符串,因此您可以保存一个echo.| 归档时间: |
|
| 查看次数: |
7081 次 |
| 最近记录: |