shell + awk

jungwook의 이미지

안녕하세요?

A라는 파일에는 해당 디렉토리의 모든 *.txt파일의 길이가 저장되어 있구요.

wc -l *.txt > A

그럼 A는
2410
3402
3211

그리고 제가 하고자 하는 것은
이 파일에서 하나의 라인들을 읽어와서 변수에 저장하고
그 길이를 비교해서 가장 긴 라인, 작은 라인을 가진 파일들을 awk로 처리하는 것인데
어떻게 배열이나 변수에 저장할 수 있을까요??

그리고 awk에서 사용한 변수는 awk블럭이라해야되나??
이걸 벗어나서도 사용할 수 있는 방법이 있나요??
즉 전역 변수개념처럼 쉘 스크립트 말하는 겁니다.

$(rm -rf gnuplot)
$(mkdir gnuplot)
dir=$(pwd)/new_data
 
for file in *.txt
do
awk '
BEGIN {OFS="\t";i=1; x=1000000000; print "#x", "y";};
{
        if(NR != 1)
        {       
                { print  ((i-1)*x), $15}
        }
        i++
}' $file > $dir/$file
done
[\code]
 
간단하게 이런 코드내에서 즉 A라는 파일을 읽어와서 awk 블럭에 넣고 싶네요
if( NR ==  파일길이 )
{
~~~~~
}
 
 
이런식의 처리를 하고 싶습니다.