1
我有一個文件,我在尋找2個模式匹配,然後將每個匹配的行存儲到數組值。 但它不是存儲值存儲awk命令匹配模式輸出行到數組索引
我的Shell命令
#Removing new line chars
a=`sed ':a;N;$!ba;s/\n/ /g' sample.txt`
#storing each matched pattern row by row
while read v1; do
y[i]="$v1"
((i++))
done < <(awk -F '<abc>|</abc>' '{for (i=2; i<=NF; i+=2) print $i}' <<< "$a")
輸出空值:
echo ${y[0]} is empty
echo ${y[1]} is empty
echo ${y[2]} is empty
應該
echo ${y[0]} = 1. I am here to show
echo ${y[1]} = 2. I am here to show
echo ${y[2]} = 3. I am here to show
我的文件是:sample.txt的
<abc>
1. I am here to show
</abc>
<no>
</no>
<abc>
2. I am here to show
</abc>
<abc>
3. I am here to show
</abc>
<no>
</no>
使用XML解析器會讓生活變得更加簡單。 – devnull
@devnull:不需要xml解析器。因爲它不是一個xml文件。它是文本文件。它可能有也可能沒有xml標籤。在這個例子中,我正在尋找標籤。如果它存在,那麼我需要相應地存儲 – logan
我不知道你的'sed'在做什麼,但如果它是評論所說的話,你可以簡單地用... tr -d'\ n'