테이블 열에 grep 출력 표시

테이블 열에 grep 출력 표시

테이블 열에 grep 출력을 표시해야 합니다.

특정 도메인 이름에 대한 생성, 만료 날짜 및 ns 서버를 표시하기 위해 whois로부터 정보를 가져오는 스크립트가 있습니다.

#!/bin/sh
cat domain-file.txt  | while read line ; do
lLine="$(echo $line | tr '[A-Z]' '[a-z]')"
echo "$lLine\t" >> table.csv;
sleep 3
echo "\n$lLine"
host=whois.nic.re
created=$(whois -h $host $lLine | egrep -i 'created:')
echo "$created\t" >> table.csv
sleep 2
expire=$(whois -h $host $lLine | egrep -i 'Expiry Date:')
echo "$expire\t" >> table.csv
sleep 2
nserver=$(whois -h $host $lLine | egrep -i 'nserver:')
echo "$nserver\t" >> table.csv
echo "------------------------------------------" >> table.csv
done
exit

다음과 같은 테이블에 출력을 표시하려는 것을 제외하고는 모든 것이 잘 실행되고 있습니다.

Domain          Created Date    Expiry date     NS
abcd.com        19/01/2018      19/01/2019      ns.abcd.com ns2.abcd.com
1234.com        19/01/2018      19/01/2019      ns.1234.com ns2.1234.com        

대신 다음과 같은 출력을 얻습니다.

abcd.com        
Created date: 19/01/2018        
Expiry date: 19/01/2019         
nserver: ns.abcd.com 
nserver: ns2.abcd.com
------------------------------------------
1234.com        
Created date: 19/01/2018        
Expiry date: 19/01/2019         
nserver: ns.1234.com 
nserver: ns2.1234.com

답변1

나는 opencalc나 Excel에서 더 나은 보기를 위해 항상 CSV 파일의 구분 기호로 쉼표를 사용합니다. 아직 테스트하지 않은 다음 코드를 시도해 보세요.

#!/bin/sh
echo -e "Domain,Created Date,Expiry_date,NS" > table.csv
cat domain-file.txt  | while read line ; 
do
    lLine="$(echo $line | tr '[A-Z]' '[a-z]')"
    host=whois.nic.re
    created=$(whois -h $host $lLine | egrep -i 'created:' | awk -F ':' '{print $NF}')
    expire=$(whois -h $host $lLine | egrep -i 'Expiry Date:' | awk -F ':' '{print $NF}')
    nserver=$(whois -h $host $lLine | egrep -i 'nserver:' | awk -F ':' '{print $NF}')
    echo -e "$lLine,$created,$expire,$nserver" >> table.csv
done
exit

터미널에서 결과를 확인하세요.

 column -t -s',' table.csv

답변2

구분 기호를 사용하여 TABcsv에 정보를 저장할 수 있다고 말씀하셨듯이 \t, 이 질문의 목표는 열의 데이터를 보기 좋게 인쇄하는 것입니다.

그냥 시도해 보면 효과가 있을 거예요

column  -t -s$'\t' -n table.csv

관련 정보