[완료 ][awk] 필드 구분자로(-F) "[,]" 을 사용할 수 있나요 ?
글쓴이: 자일자일 / 작성시간: 월, 2011/08/29 - 4:44오후
안녕하세요.
list1.txt 파는 파일에 아래와 같은 형식으로 저장 된 리스트가 있습니다.
-------------------------------
필드1[,]필드2[,]필드3[,]필드4
필드1[,]필드2[,]필드3[,]필드4
필드1[,]필드2[,]필드3[,]필드4
필드1[,]필드2[,]필드3[,]필드4
-------------------------------
이 리스트에서 필드3의 내용만 추출하고 싶어 awk를 사용하는데요
awk -F"[,]" '{print $4}' list1.txt 으로 실행하면 필드 구분자 [,]이 인식되지 않아
아래처럼 sed 활용하여 [,] 를 ~~~ 으로 변경해서 추출하고 있습니다.
cat list1.txt | sed "s/\[\,\]/~~~/g" | awk -F"~~~" '{print $4}'
위와 같은 방법 말고, awk만을 이용하여 처리할 수 없을까요?
감사합니다.
Forums:
-F로 여러 글자의 구분자를 지정하면 이를
-F로 여러 글자의 구분자를 지정하면 이를 정규표현식으로 해석하기 때문에 발생하는 문제입니다. (man awk의 Fields 절 참고)
'[' 앞에 적당한 개수의 '\'를 붙여주시면 됩니다.
$PWD `date`
감사합니다.
awk -F"\\\[,]" '{print $4}' list1.txt
위와 같이 입력하니 원하는 값이 나오네요.
감사합니다.
awk -F \\\\[,\\\\] '{print
awk -F \\\\[,\\\\] '{print $3}' list1.txt
또는
awk 'BEGIN{FS="\\[,\\]"}{print $3}' list1.txt
감사합니다.
\ 하나만 붙여 실행 시 값이 정확히 나오지 않아서 안되나 싶었는데
3개를 붙여야 하는군요.
감사합니다.
댓글 달기