我试图在BASH中基于2个分隔符拆分字符串 - 空格和\。这是字符串: -
var_result="Pass results_ADV__001__FUNC__IND\ADV__001__FUNC__IND_08_06_14_10_04_34.tslog"
我希望它按如下方式分为3部分: -
part_1=Pass
part_2=results_ADV__001__FUNC__IND
part_3=ADV__001__FUNC__IND_08_06_14_10_04_34.tslog
我尝试过使用IFS并将第一个分割得很好。但第二次拆分有些如何删除" \"并坚持整个部分,我得到分裂: -
test_res= Pass
log_file_info=results_ADV__001__FUNC__INDADV__001__FUNC__IND_08_06_14_10_04_34.tslog
我使用的IFS如下: -
echo "$var_result"
IFS=' ' read -a array_1 <<< "$var_result"
echo "test_res=${array_1[0]}, log_file_info=${array_1[1]}"
提前致谢。
答案 0 :(得分:5)
我认为你需要这个:
IFS=' |\\' read -ra array_1 <<< "$var_result"
答案 1 :(得分:0)
这应该这样做
#!/bin/bash
var_result="Pass results_ADV__001__FUNC__IND\ADV__001__FUNC__IND_08_06_14_10_04_34.tslog"
field1=$(echo "$var_result" | awk -F ' ' '{print $(NF-1)}');
field2=$(echo "$var_result" | awk -F \\ '{print $(NF-1)}');
field1=$(echo "$field1" | awk -F ' ' '{print $(NF-1)}');
field3=$(echo "$var_result" | awk -F \\ '{print $2}');
echo $field1;
echo $field2;
echo $field3;