awk 변수 shell 변수에 저장

OS/리눅스 & 유닉스 2012. 3. 20. 13:47

Sample File: position_list // sep=<TAB>


1. 파일 읽기

position_list파일에서 한 라인씩 데이터를 읽고 화면에 출력


while read line

do

 echo $line

done < position_list


출력



2. 파일에서 읽은 데이터를 특정 구분자에 의해 분할

$line변수에 저장 된 데이터에서 첫 번째 컬럼 정보를 가져온다. (awk를 설명하려면 내용이 많기 때문에 생략)

awk '{print $1}'은 첫 번째 컬럼만 출력 한다는 의미로 알고 넘어가면 될 것 같다. 많은 옵션들이 있지만 .. 파일의 데이터 구분자가 <TAB>으로 되어 있으면 저렇게만 써도 정상적으로 동작한다.


while read line

do

 echo $line | awk '{print $1}'

done < position_list


출력



3. 2번에서 분할 된 문자를 변수에 저장해서 사용

아래 코드가 위에 꺼에 비해 조금 길어 보일 수도 있지만 .. 같은 문장이 계속 반복 되는 것을 알 수 있다.(변수명과 컬럼 번호만 다르다..)

위에서 분할 한 문자를 각 변수에 저장해 출력하는 것을 볼 수 있다...


while read line
do
 index=$(echo $line | awk '{print $1}')
 chr=$(echo $line | awk '{print $2}')
 start_position=$(echo $line | awk '{print $3}')
 end_position=$(echo $line | awk '{print $4}')

 echo index:$index
 echo chr:$chr
 echo start-end:$start_position-$end_position
 echo
done <position_list


출력


'OS > 리눅스 & 유닉스' 카테고리의 다른 글

pthread_detach  (0) 2012.03.24
nohup  (0) 2012.03.22
awk  (0) 2012.03.20
Four Ways to Pass Shell Variables in AWK  (0) 2012.03.20
shell file read line  (0) 2012.03.20
: