Linux shell——列印不為0的行

qq_36480087發表於2020-11-05

有如下兩個檔案,現在需要將a.txt中非零的行提取出來,然後列印b.txt中對應行號的內容。
在這裡插入圖片描述
使用的程式碼如下:

count=($(awk '{print $1}' a.txt))   #將count.txt的內容儲存為陣列
num=${#count[@]}                    #陣列大小
echo $num 

nonzero=0
for((i=0;i<$num;i++));do
if [ ${count[$i]} != 0 ];then       #判斷該行是否為0值
line=$[$i+1]                        #陣列序號從0開始,轉成行號需要+1
echo $line
sed -n "${line}p" b.txt >> new.txt  #將非零值對應的行輸出到new.txt中
let nonzero++                       #自加1
fi
done

echo $nonzero

相關文章