Unix: 쉘 스크립트에서 HTML 출력을 변환하는 방법

Unix: 쉘 스크립트에서 HTML 출력을 변환하는 방법

SQL 쿼리 출력을 HTML 테이블 형식 출력으로 표시하는 방법. 출력을 html 테이블 형식으로 표시하는 쉘 스크립트 코드가 있습니다. 입력은 SQL 쿼리에서 가져오지만 올바른 출력을 얻지 못합니다. 구조화되지 않은 헤더와 데이터를 얻는다는 것은 첫 번째 열 값만 취하고 나머지는 테이블 형식이 아닌 하나씩 형식으로 표시된다는 의미입니다. 누구든지 이 문제를 해결하는 데 도움을 줄 수 있습니까? 미리 감사드립니다. 이것은 내 코드입니다. #사용자 정의 테이블에서 데이터를 검색하는 SQL 쿼리입니다.

#!/bin/bash

output_file="output.html"
temp_file="temp.txt"
delimiter="|"

sql_query="SELECT 'REQUEST_ID' AS \"REQUEST_ID\",
    'REQUESTED_BY' AS \"REQUEST_BY\",
    'USER_NAME' AS \"USER_NAME\",
    'REQUEST_DATE' AS \"REQUEST_DATE\",
    'CON_PRG_NAME' AS \"CON_PRG_NAME\",
    'OUTFILE_NAME' AS \"OUTFILE_NAME\",
    'FILE_MOVED_STATUS' AS \"FILE_MOVED_STATUS\",
    'CON_STATUS_CODE' AS \"CON_STATUS_CODE\",
    'ORG_ID' AS \"ORG_ID\"
    FROM DUAL
    UNION ALL
    SELECT TO_CHAR(request_id),
        TO_CHAR(requested_by),
        user_name,
        TO_CHAR(request_date),
        concurrent_program_name,
        outfile_name,
        file_moved_status,
        status_code,
        TO_CHAR(org_id)
    FROM xx_concurrent_stg
    WHERE concurrent_program_name = '$concurrent_program_name'
    AND request_date BETWEEN TO_DATE('$from_date', 'DD-MON-YY') AND TO_DATE('$to_date', 'DD-MON-YY');"

# Run the SQL query and save the output to a temporary file
sqlplus -S apps/apps@EBSDB <<EOF > $temp_file
SET PAGESIZE 0
SET FEEDBACK OFF
SET HEADING OFF
SET COLSEP "$delimiter"
SET TRIMSPOOL ON

$sql_query

EXIT;
EOF

# Generate the HTML table from the temporary file
awk -v delimiter="$delimiter" '
BEGIN {
    print "<table border=1 cellspacing=2 cellpadding=2>"
    FS = delimiter
}
NR == 1 {
    print "<tr>"
    for (i = 1; i <= NF; i++) {
        printf "<th>%s</th>", $i
    }
    print "</tr>"
}
NR > 1 {
    print "<tr>"
    for (i = 1; i <= NF; i++) {
        printf "<td>%s</td>", $i
    }
    print "</tr>"
}
END {
    print "</table>"
}' $temp_file > $output_file

관련 정보