我有一個文件,其中包含磁盤列表以及它們的序列號分隔的行。該數據是通過此格式的文件是一致的:將bash數組值賦給變量
Disk hostname disk /proc/cds/cdd/disks/csd1
Disk hostname disk serial: NAGYNLGX
Disk hostname disk /proc/cds/cdd/disks/csd10
Disk hostname disk serial: NAGY85MX
我想抓住從第一個兩行的/ proc/CDS/CDD /磁盤/ CDS1的數據,並把下一行的序列號後,在同一直線上,使得其將被格式化是這樣的:
/proc/cds/cdd/disks/csd1 NAGYNLGX
/proc/cds/cdd/disks/cds10 NAGY85MX
我試圖用一個陣列中的所有文件輸出到閱讀,然後用在bash腳本的值賦給變量。
#!/bin/bash
readarray a < rec20.txt
total=${#a[*]}
for ((i=0; i<=$(($total -1)); i++))
do
let b=i+1
# echo -n "${a[$i]} "|awk '{print $4}'; echo -n "${a[$b]} "|awk '{print $5}'
# echo -e "${a[$i]} "|awk '{print $4}'\t; echo -e "${a[$b]} "|awk '{print $5}'\n
# set var1= echo "${a[$i]} " |awk '{print $4}'
# set var2= echo "${a[$b]} " |awk '{print $5}'
# var1=printf '%s\t' "${a[$i]} "|awk '{print $4}'
# var2=printf '%s\n' "${a[$b]} "|awk '{print $5}'
echo -e "${a[$i]} "|awk '{print $4}'\t
echo -e "${a[$b]} "|awk '{print $5}'\n
echo "var1 is $var1 var2 is $var2"
let i++
done
殼命令是'var = value'來做到這一點,命令的輸出是'var = $(command)'。 –