[완료]awk 사용중 ...버그가있는거 같은데...해결좀..
다음과같은 필드를 갖는 레코드 줄이 많이 있는 파일에서.......
맨앞의 1은 아이디(순번)입니다.
1:7:58164512:15318107:58164346:15317950:58164494:15317819:58164660:15317989:58164620:15318020:58164620:15318020:58164512:15318107
위와같은 파일 두개를 합쳐 하나의 파일로 만든후 맨앞의 아이디(순번)을 줄려고합니다. 프로그래밍은 구경만해서...코딩이런건 못하고...
awk를 이용하여 해봤습니다. 다음을 실행전에...두개의 파일을 합쳐서...아이디(순번)이 1 부터 쭉~~나오고..합쳐진파일의 아이디(순번)이 또 마지막에
붙어서 다시 1 부터 출력됩니다. 그래서 다음과같이..
awk ' FS=":" { for (m=2; m<=NF; m++) printf("%s""%s",":",$m);print " ";print"\n" }' [파일명].org > [파일명].org2
-->> 첫번째 필드인 아이디(순번)을 제외하고 출력합니다.
awk ' NF!=0 { print $0 }' [파일명].org2 > [파일명].org3
-->> 중간에 공백 레코드(줄)이 생겨서 삭제할려고 했습니다.
awk ' { print (NR $0) } ' [파일명].org3 > [파일명]
-->> 첫줄에서 아이디(순번)을 제거했기에...다시 순번을 넣습니다.
여기까지 어뜨케 잘 찾아서 해봤습니다..근데...아쉽게도...맨 첫 레코드가 사라지는 현상이 나타납니다..아무리 궁리를해도 다른방법은 모르겠고..
친절한 설명 부탁드립니다.
다른 제한조건이 없다면
sed 's/^[0-9]*:/:/g' t3.org |gawk '{print NR$0}'
----------------------------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요
-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.
아..성공입니다...(' ' )(. . ) 꾸뻑..
설명좀 부탁드립니다..."^[0-9]*:" 을 ":" 로 바꾸는것같은데...
"^[0-9]*:" 이게 잘 이해가안가네여...
정규식으로 검색해서
정규식으로 검색해서 조금 보시면 이해 될 겁니다
s/^[0-9]*:/:/g
s/A/B/g 는 A패턴를 찾아서 B로 바꾸라는 sed 명령입니다.
^[0-9]*: 는 ,^ 줄의 시작부터, [0-9] 0~9까지의 글자가, * 0개이상 반복되고, : 가 오는 패턴과 일치하는 정규식입니다
----------------------------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요
-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.
댓글 달기