从文件中读取一列的值并逐一打印

从文件中读取一列的值并逐一打印

我的xyz.csv文件包含以下数据:

**abc_hosts,def_host_id,sde_host_id,hostname,dffff_status,status,eeee,eeeeee,tttt,name1,name2,name3,**
start,,,,,,,,,,,,,,,,,,,
,2,3,eee,4,4,rrr,ggggg,323232,22323,2323232,sfdsfd,223333,443433323,45343,5445,213132,fdsfdfdfd,2332332321,3
end,,,,,,,,,,,,,,,,,,,

答案1

正如评论中提到的,IP 地址将始终位于始终包含 的行中eth0,具体取决于您可以运行此命令

grep eth0 Platform_Configuration.csv | cut -d',' -f5 | tr -d '**'

答案2

我还没有测试你的代码,但假设你的代码是正确的,这是你可以做的一个简单的事情。

echo  $(grep -A$i "start_interfaces_setup" Platform_Configuration.csv | cut -d ',' -f5) | tr " " "\n"

请看tr最后的部分。

答案3

任务可以一个人完成sed

sed -n '/.*eth0:[0-9]\+,/{s///;s/,/\n/;P;}' Platform_Configuration.csv

或者

sed -n '/eth0/{s/,/\n/4g;D;};/\n/P' Platform_Configuration.csv

答案4

由于数据是分隔的,我建议类似

awk -F, '/eth0:[0-9]+/ {print $5}' Platform_Configuration.csv

或(更严格地)

awk -F, '$4 ~ /eth0:[0-9]+/ {print $5}' Platform_Configuration.csv

相关内容