![行と列のデータを動的に印刷し、同じファイルから同じデータを更新するbashスクリプトを作成する方法は? [閉鎖]](https://linux33.com/image/92457/%E8%A1%8C%E3%81%A8%E5%88%97%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8B%95%E7%9A%84%E3%81%AB%E5%8D%B0%E5%88%B7%E3%81%97%E3%80%81%E5%90%8C%E3%81%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E5%90%8C%E3%81%98%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8Bbash%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
abc_hosts,pwd_host_id,pwd_host_id,ホスト名,ddd_status,dddd_status,
start_hosts,,,,,,,,,,,,,,,,,,,1,o1,fhffhfh,1,1,fff,fdfd,172.33.33.33,172.30.30.12,172.30.30.11,oreere.dff , 43,443343,1111,43435,1099,43434444444,3232321312312 end_hosts,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , ,, abc_hosts,pwd_host_id,pwd_host_id,ホスト名,ddd_status,dddd_status,
start_hosts2,,,,,,,,,,,,,,,,,,,,,1,o1,fhffhfh,1,1,fff,fdfd,172.33.33.33,172.30.30.12,172.30.30.11,oreere.dff ,43,443343,1111,43435,1099,43434443444,3232321312312 end_hosts2,,,,,,,,,,,,,,,,,,,
答え1
このawk
スクリプトを使用すると起動します。
BEGIN { FS = "," }
$1 {
if ($1 == "end_" tablename) {
exit 0;
} else if ($1 == "start_" tablename) {
in_table = 1;
} else if ($1 == tablename) {
count = split($0, columns);
}
next;
}
in_table {
for (i = 2; i <= NF; i++) {
values[i] = values[i] "," $i;
}
}
END {
for (i = 2; i <= count; i++) {
if (columns[i]) {
print columns[i] " - " substr(values[i], 2);
}
}
}
次のように呼び出します。
awk -f config.awk -v tablename=interfaces_setup config.csv