ファイルから値列を読み取り、1つずつ印刷します。

ファイルから値列を読み取り、1つずつ印刷します。

私の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

関連情報