我有一个文件,其中包含磁盘列表以及它们的序列号分隔的行。该数据是通过此格式的文件是一致的:将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)'。 –