[쉘스크립트] 텍스트파일의 라인을 읽어 ip와 id 구분하기

텍스트 파일의 각 라인을 읽어 해당 라인에서 ip 와 id 를 구분해서 출력하는 코드이다. 텍스트의 파일은 아래와 같은 형식이다. ip 와 이름-id 는 탭으로 구분된 상태이다.

192.168.10.100	홍길동-gildong
192.168.10.101	김철수-kcs0297

쉘스크립트 코드는 아래와 같다.

#!/bin/bash
IPS=()
IDS=()

i=0

while IFS='' read -r line || [[ -n "$line" ]]; do
    IFS=$'\t'
	tmp=($line)
	IPS[${i}]=${tmp[0]}

	str=${tmp[1]}

	IFS=$'-'
	tmp=($str)
	IDS[${i}]=${tmp[1]}

	i=${i}+1
done < "$1"

for (( i=0; i<${#IPS[@]}; i++)); do
	echo "${IPS[i]} / ${IDS[i]}"
done

쉘스크립트 실행 방법을 ./read.sh hosts 와 같다. 쉘스크립트 파일과 텍스트 파일을 지정해주면 된다. 실행 결과는 아래와 같다.

192.168.10.100 / gildong
192.168.10.101 / kcs0297

참고
– https://stackoverflow.com/questions/1951506/add-a-new-element-to-an-array-without-specifying-the-index-in-bash
– https://unix.stackexchange.com/questions/410710/splitting-a-line-into-array-in-bash-with-tab-as-delimiter
– https://stackoverflow.com/questions/27291158/split-tab-separated-string-into-array-in-bash
– https://stackoverflow.com/questions/6654849/how-to-split-a-string-in-bash-delimited-by-tab

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.