假如我有字符串A,A="米饭+爆炒牛肉+豉汁肉片+蒜蓉芥蓝"我想过滤它是否含有某个中文字符,比如“牛肉",使用test.sh#!/bin/bashset-xA="米饭+爆炒牛肉+豉汁肉片+蒜蓉芥蓝"F="牛肉"if[`echo"$A"|egrep"$F"`];thenecho"Ainclude$F";fi出现以下错误:$./test.sh+A='米饭+爆炒牛肉+豉汁肉片+蒜蓉芥蓝'+F=$'\347\211\233\350\202\211'++egrep$'\347\211\233\350\202\211'++echo'米饭+爆炒牛肉+豉汁肉片+蒜蓉芥蓝'+'['$'\347\261\263\351\245\255'+$'\347\210\206\347\202\222\347\211\233\350\202\211'+$'\350\261\211\346\261\201\350\202\211\347\211\207'+$'\350\222\234\350\223\211\350\212\245\350\223\235'']'./test.sh:line7:[:toomanyarguments是不是应该在哪个环境变量设置一下。
2 回答

犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
exportLANG=zh_CN.UTF-8A="米饭+爆炒牛肉+豉汁肉片+蒜蓉芥蓝"B="牛肉"F="毛线"echo$A|grep"$B"&>/dev/nullif[[$?==0]];thenecho$BMatchfiecho$A|grep"$F"&>/dev/nullif[[$?==0]];thenecho$FMatchfi你看看咯另外,确实使用bash的匹配更方便if[["$A"=~"$B"]];thenechoMatch${BASH_REMATCH[0]}fi有时候胜过sed的分组捕获,bash的匹配用起来更简单,也支持分组捕获,结果保存在BASH_REMATCH数组中
添加回答
举报
0/150
提交
取消