본문 바로가기

카테고리 없음

awk 입력받은 글자들을 컬럼으로 출력하기

1.

 

apple
banana
cherry
date
elderberry
fig
grape

 

input.txt파일 = 가장 길이가 긴 문자인 elderberry를 기준으로 열의 너비를 계산해 설정된다.

 

 

2.

 

한줄에 최대 60자인곳에서 그중 긴 문자인 elderberry를 기준으로 계산해 한줄에 6개의 단어가 넣어짐

ncol = int(60 / max + 0.5)

# elderberry 글자수는 10, max=10에 넣어지고 정수로 계산하면 6 이된다

 

 

 

 

3.

 

# 출력형식 정의 - max = 10일 때, fmt는 %-10.10s로 설정됩
# 이는 출력 시 최소 10칸의 공간을 확보하며, 문자열이 10자를 초과해도 10자까지만 출력

fmt = sprintf("%%-%d.%ds", max, max)

 

# 현재줄의 길이 length($0)가 max보다 길면 긴길이만큼 max가 업데이트된다

{ lines[NR] = $0
  if (length($0) > max)
    max = length($0)
}

 

 

4.

# 앞에 공백 제거 
sub(/^ +/, "", out)

적용전

 

적용 후

 

 

 

 

 

 

 

 

참고한 책입니다 

https://www.yes24.com/Product/Goods/139880801

 

AWK 프로그래밍 언어 2판 - 예스24

코드의 거장들이 만든, 텍스트 처리의 숨은 고수 AWK1977년부터 지금까지 변하지 않는 데이터 분석 도구쉽다, 생산적이다, 언제나 사용할 수 있다!AWK 창시자가 직접 쓴 가이드대규모 로그 파일 분

www.yes24.com