![행 및 열 데이터를 동적으로 인쇄하고 동일한 파일에서 동일한 데이터를 업데이트하는 bash 스크립트를 작성하는 방법은 무엇입니까? [폐쇄]](https://linux55.com/image/92457/%ED%96%89%20%EB%B0%8F%20%EC%97%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EB%8F%99%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%EC%87%84%ED%95%98%EA%B3%A0%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8%ED%95%98%EB%8A%94%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%9E%91%EC%84%B1%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%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,43434443444,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