我需要读取一个csv文件,在其中列出字符串并将它们分配给变量。我能够做到这一点,但是变量返回了不希望出现的行尾,从而使格式化脱离了文件。
文件:
10.248.32.12
10.248.32.14
10.248.32.16
10.248.32.17
10.248.32.24
10.248.32.25
代码:
echo "ip1;nivel_sinal" > final.csv
while IFS='' read -r line || [[ -n "$line" ]]; do
ip1=$line
snmpget -t2 -v2c -c NGSN_BRASIL_RO $ip1 .1.3.6.1.4.1.25488.8.1.2.2 > temp.txt
if [ -s temp.txt ]
then
sinal=$(snmpget -t2 -v2c -c NGSN_BRASIL_RO $ip1 .1.3.6.1.4.1.25488.8.1.2.2 )
echo $ip1
fi
junto="$ip1;$sinal"
echo "$junto" >> final.csv
done < "$1"
dos2unix final.csv
输出文件:
ip1 nivel_sinal
10.248.32.12
SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -67
10.248.32.14
SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -95
10.248.32.16
SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -79
10.248.32.17
SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -71
10.248.32.24
SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -67
10.248.32.25
SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -87
这是excel的最终结果,以防万一省略了要点和virgurla。
我希望如何
ip1 nivel_sinal
10.248.32.12 SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -67
10.248.32.14 SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -95
10.248.32.16 SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -79
10.248.32.17 SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -71
10.248.32.24 SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -67
10.248.32.25 SNMPv2-SMI::enterprises.25488.8.1.2.2 = INTEGER: -87
我已经尝试使用其他打印命令,甚至出现了末行字符。那不是我想要的。像'echo' without newline in a shell script