bash 스크립트 for loop문에서 awk 사용
      글쓴이: kaien / 작성시간: 토, 2004/04/03 - 2:03오후    
  
  나름대로 인터넷을 뒤져도 답이 안보여서 고수님들께 조언을 청합니다..
bash script내에서
awk 'NR%10==1 {printf"%6d\n",$1}' test > 1
awk 'NR%10==2 {printf"%6d\n",$1}' test > 2
awk 'NR%10==3 {printf"%6d\n",$1}' test > 3
awk 'NR%10==4 {printf"%6d\n",$1}' test > 4
...
awk 'NR%10==0 {printf"%6d\n",$1}' test > 0
를 구현하려고 아래처럼 했는데
for i in 1 2 3 4 5 6 7 8 9 0
do
echo|awk 'NR%10==$i {printf"%6d\n",$1}' $1 > $i
done
막상 결과는 아무것도 나오질 않는군요..
첨부된 파일을 10컬럼 폭으로 된 하나의 파일로 다시 만드는 게 목적이고
나중에 paste 명령을 통해 하나로 합치려고 합니다..
echo| 뒷부분에 뭔가 따옴표나 역슬래쉬를 넣어줘야 하는 것 같은데 잘 되지를 않는군요..
고수님들의 멋진 한수를 기대해봅니다..
File attachments: 
| 첨부 | 파일 크기 | 
|---|---|
|  data.txt | 34.7 KB | 
Forums: 


가까운 지인의 도움으로 해결했습니다. awk에서 ""를 쓸수 있군요[
가까운 지인의 도움으로 해결했습니다. awk에서 ""를 쓸수 있군요
for i in 0 1 2 3 4 5 6 7 8 9 do awk "NR%10==$i {printf \"%6d\n\",\$1}" $1 > $i done이리하셔서 적당히 escape를 해주시면 됩니다..
이렇게 하면 됨
보아 하니 내가 아는 참치 같은데 :)
한줄 한줄 뽑아서 그걸 합칠 생각을 했다니 - -;
잘 생각해보면 다음처럼 awk만 써서 해도 된다.
awk '{ if(NR%10!=0){printf"%s ",$1;}else{print $1;} }' data.txt > outfile.txt댓글 달기