我有以下代码,每次匹配字符串“ form-data”时都会拆分一个字符串,并将结果存储在数组变量中。
字符串包含:
form-data; name="user[opt_outs][activation]"\r\n\r\nfalse\r\n------WebKitFormBoundary1AXfUoqVDf3voN5Q\r\nContent-Disposition: form-data; name="user[opt_outs][sms]"\r\n\r\nfalse\r\n------WebKitFormBoundary1AXfUoqVDf3voN5Q\r\nContent-Disposition: form-data; name="user[opt_outs][email]"\r\n\r\nfalse\r\n------WebKitFormBoundary1AXfUoqVDf3voN5Q\r\nContent-Disposition: form-data; name="user[opt_outs][push]"\r\n\r\nfalse\r\n
req=`cat ./my-string.txt`
delimiter=form-data
s=$req$delimiter
array=();
while [[ $s ]]; do
array+=( "${s%%"$delimiter"*}" );
s=${s#*"$delimiter"};
done;
我需要使用用于分隔它的相同字符串,即“ form-data”,将其重新连接在一起。
我尝试过:
sed -e 's/\(form-data\)/\1./g' -e 's/\form-data$//' <<< "${array[*]}"
function join_by { local d=$1; shift; echo "$1"; shift; printf "%s" "${@/#/$d}"; }
join_by 'from-data' ${array[*]}
还有其他...