![awk를 사용하여 여러 줄의 레코드를 분할하는 방법은 무엇입니까?](https://linux55.com/image/70304/awk%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%97%AC%EB%9F%AC%20%EC%A4%84%EC%9D%98%20%EB%A0%88%EC%BD%94%EB%93%9C%EB%A5%BC%20%EB%B6%84%ED%95%A0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
awk를 통해 여러 줄의 레코드를 분할하는 방법(예: 다음 파일):
027,027,0,3,,1,0,1,1,0,0,0,0,0,0,0,0,6,1,,1.211100,1,2015-08-03,2015-07-04,,2015-11-01,0,0,2015-11-01,1,1,,0,0,0,0,0,131,0,0,0,0,0,2015-06-01,10000000000000000000,,
136,136,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,1,1,,0.350000,1,2015-08-17,2015-07-18,,2015-11-15,0,0,2015-11-15,0,0,,0,0,0,0,0,131,0,0,0,0,0,2012-11-20,10000000000000000000,,
633,633,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,3,1,,3.125300,1,2015-08-31,2015-08-01,,2015-11-29,0,0,2015-11-29,0,0,,0,0,0,0,0,131,0,0,0,0,0,2014-12-12,10000000000000000000,,
802,802,0,0,,1,0,1,1,0,1,0,0,0,0,0,0,7,1,,0.060000,1,2015-08-05,2015-07-06,,2015-11-03,0,0,2015-08-05,1,1,,0,0,0,0,0,131,0,0,0,0,0,2014-08-10,10000000000000000000,,
원하는 출력은 다음과 RS
같아야 "*"
합니다.
027,027,0,3,,1,0,1,1,0,0,0,0,0,0,0,0,6,1,,1.211100,1,2015-08-03,2015-07-04,,2015-11-01,0,0,2015-11-01,1,1,,0,0,0,0,0,131,0,0,0,0,0,2015-06-01,10000000000000000000,,
********************************************************************************************************************************************************************
136,136,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,1,1,,0.350000,1,2015-08-17,2015-07-18,,2015-11-15,0,0,2015-11-15,0,0,,0,0,0,0,0,131,0,0,0,0,0,2012-11-20,10000000000000000000,,
*******************************************************************************************************************************************************************
633,633,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,3,1,,3.125300,1,2015-08-31,2015-08-01,,2015-11-29,0,0,2015-11-29,0,0,,0,0,0,0,0,131,0,0,0,0,0,2014-12-12,10000000000000000000,,
*******************************************************************************************************************************************************************
802,802,0,0,,1,0,1,1,0,1,0,0,0,0,0,0,7,1,,0.060000,1,2015-08-05,2015-07-06,,2015-11-03,0,0,2015-08-05,1,1,,0,0,0,0,0,131,0,0,0,0,0,2014-08-10,10000000000000000000,,
*******************************************************************************************************************************************************************
여러 코드 생성을 사용해 보았 {RS="*"}
으나 성공하지 못했습니다.
답변1
한 가지 방법은 다음과 같습니다.
$ v='\n*******************************************************************************************************************************************************************\n'
$ awk -v ORS="$v" '{print;}' file
027,027,0,3,,1,0,1,1,0,0,0,0,0,0,0,0,6,1,,1.211100,1,2015-08-03,2015-07-04,,2015-11-01,0,0,2015-11-01,1,1,,0,0,0,0,0,131,0,0,0,0,0,2015-06-01,10000000000000000000,,
*******************************************************************************************************************************************************************
136,136,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,1,1,,0.350000,1,2015-08-17,2015-07-18,,2015-11-15,0,0,2015-11-15,0,0,,0,0,0,0,0,131,0,0,0,0,0,2012-11-20,10000000000000000000,,
*******************************************************************************************************************************************************************
633,633,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,3,1,,3.125300,1,2015-08-31,2015-08-01,,2015-11-29,0,0,2015-11-29,0,0,,0,0,0,0,0,131,0,0,0,0,0,2014-12-12,10000000000000000000,,
*******************************************************************************************************************************************************************
802,802,0,0,,1,0,1,1,0,1,0,0,0,0,0,0,7,1,,0.060000,1,2015-08-05,2015-07-06,,2015-11-03,0,0,2015-08-05,1,1,,0,0,0,0,0,131,0,0,0,0,0,2014-08-10,10000000000000000000,,
*******************************************************************************************************************************************************************
ORS를 명시적으로 설정하지 않고 동일한 효과를 얻는 또 다른 방법은 다음과 같습니다.
awk '{print;} {for(i=1;i<=length($0);i++)printf "*";print"";}' file