쉘 프로그래밍 중..

anabaral의 이미지

유닉스에서 쉘 프로그래밍을 하는데요..

파일 a.txt 내용이 다음과 같다면:
a1.txt
a2.txt
a3.txt

저는 a.txt 파일을 읽어 최종적으로
a1.txt, a2.txt, a3.txt 들의 3번째 행들을 얻고 싶습니다.
가능하면 파일이름까지 포함해서요..

쉘 프로그래밍 만으로 이게 가능할까요?

제가 시도했던 것은
head -3 `cat a.txt` | tail -1

sed -n '3p' `cat a.txt`
였는데.. 보기좋게 실패했습니다.

eseo의 이미지

이정도로 하면 되지 않을까요?

#!/bin/sh
rm -f result
for FILE in `cat a.txt`
do
    echo -n "[$FILE] : " >> result
    head -3 $FILE | tail -1 >> result
done

---
배려하는 마음을 갖자.

hokim의 이미지

for x in `cat a.txt`
do
echo $x : "`head -3 $x | tail -1`"
done
anabaral의 이미지

감사합니다..

for 문을 쓰니 아주 손쉽게 해결 되네요.. ^^

부랴부랴~~~