Shell scripts 질문드립니다.

helperchoi의 이미지

1. list 파일의 내용

cat list

127.0.0.1 aaa
127.0.0.2 bbb
127.0.0.3 ccc

2. imsi.sh 의 내용

#!/bin/bash
 
LIST_FILE=`cat $1`
 
for LIST in ${LIST_FILE}
do
        echo ${LIST}
done

3. imsi.sh list 를 실행시 출력형태

127.0.0.1
aaa
127.0.0.2
bbb
127.0.0.3
ccc

4. 원하는 출력형태

127.0.0.1 aaa
127.0.0.2 bbb
127.0.0.3 ccc

raymundo의 이미지

IFS 변수에서 스페이스와 탭은 빼고 줄바꿈만 구분자로 쓰도록 재설정해보시죠.

IFS=$'\n'  # 이렇게
for ...

좋은 하루 되세요!

qiiiiiiiip의 이미지

cat $1 | while read LIST
do
echo ${LIST}
done

cinsk의 이미지

cat "$1" | while read LIST; do
echo "$LIST"
done

"$1" -> 파일 이름에 공백이 있을 때 대비,

"$LIST" -> line에 공백이 여러 개 연속해서 나올 때 대비.