【发布时间】:2017-06-19 03:57:05
【问题描述】:
我有一个 csv 文件,其中的值如下:
Wt-Do-U-Do-Wit-The-Black,black
Yay-Its-Your-Birthday-Black,black
You-Are-My-Sunshine-Happy-Birthday-Red,red
You-Are-Special-Navy-Blue,navy-blue
You-Dont-Look-A-Day-Over-Fabulous-Green,green
You-My-Friend-Are-Ridiculously-Fabulous-Happy-Birthday-Pink,pink
我想在颜色名称出现之前拆分每个字符串。例如:
str1=Wt-Do-U-Do-Wit-The
str1=Yay-Its-Your-Birthday
str1=You-Are-My-Sunshine-Happy-Birthday
str1=You-Are-Special
str1=You-Dont-Look-A-Day-Over-Fabulous
str1=You-My-Friend-Are-Fabulous-Happy-Birthday
用于搜索我正在使用的字符串:-
if [ "$string" == *"Black"* ] && [ "$string" == *"White"* ] ; then
echo "It's there!"
else
echo "SOrry"
fi
搜索正常。但是如何拆分字符串呢?
我使用的另一种方式:
colour_arr[0]='Red'
colour_arr[1]='Black'
colour_arr[2]='Navy-Blue'
colour_arr[3]='White'
inarray=$(echo ${colour_arr[@]} | grep -o "$string" | wc -w)
echo "$inarray"
但这不起作用。
【问题讨论】:
-
您能否按照预期的输出提供您的准确输入,而不是发布您尝试解决问题的内容(未知)
X-Y problem -
输入行是否有以下模式
"4 words",colorname? -
@sameerkn : 第一列有不同的字符串不仅有 4 个单词,颜色名称相同
-
@Urvashi:您想将字段存储在变量或数组中吗?解析完这些行你想做什么?
-
@Urvashi: 为什么这行
You-Are-My-Sunshine-Happy-Birthday-Red,red S在red后面多了一个字符S
标签: arrays string bash shell split