sed 사용 예시



sed 사용 예시





sed는 리눅스에서 간단하게 줄 단위로 문자열 변형을 할 수 있는 기본 툴이다.

표준입력이나 파일에서 텍스트를 입력으로 받아, 주어진 줄들에 대해 한번에 한 줄씩 정해진 처리를 한 후에 

그 결과를 표준출력이나 파일로 내 보낸다. 


아래는 sed 에서 사용하는 파라미터의 의미들이다.  


-e 옵션은 정규식 옵션이고 

's/A/B/g' 는 A 패턴을 B 패턴으로 바꾸겠다는 것이다. 


()는 정규식 서브 패턴으로  A패턴에서 나오는 순서대로 B패턴에서 \1, \2 , 로 표시한다. 

참고로 \은 escape character이다.


 -r 옵션을 사용하면 패턴 그룹화할때 

escape character 를 사용하지 않아도 사용 가능하다. 


-i 옵션은 'edit in place'의 약자로 파일 내에서 수정을 진행하다. 





( ) 안의 내용 전체 제거하기 


sed -ire 's/([^()]*)//g' 파일이름.csv



숫자 뒤에 , 추가하기 


sed -rie 's/([0-9]+)/\1,/g' 파일이름.csv




( 앞에 탭(\t)추가하기 


sed -re 's/\(/\t(/g' 파일이름.csv









sed로 " 안의 , 제거하기




load data infile로 csv 파일 내용을 mysql 테이블로 import했는데 

warning 개수가 넘 많다 -_-;; 






LOAD DATA INFILE '/var/lib/mysql-files/sample.csv' INTO TABLE sample

FIELDS TERMINATED BY ','

IGNORE 1 LINES;


Query OK, 12147957 rows affected, 65535 warnings (1 min 44.92 sec)





show warnings; 로 경고 메세지를 확인하니 아래와 같이 테이블의 input columns 개수보다 

칼럼 개수가 많다고 한다. 





 Warning | 1265 | Data truncated for column '전용면적' at row 3758                             |

| Warning | 1262 | Row 3758 was truncated; it contained more data than there were input columns |

| Warning | 1265 | Data truncated for column '전용면적' at row 3759                             |

| Warning | 1262 | Row 3759 was truncated; it contained more data than there were input columns |

| Warning | 1265 | Data truncated for column '전용면적' at row 3760                             |

| Warning | 1262 | Row 3760 was truncated; it contained more data than there were input columns |

| Warning | 1265 | Data truncated for column '전용면적' at row 3761                             |





귀찮지만 데이터 확인 ㄱㄱ

, 를 기준으로 필드를 분리하는데 건물 이름에 , 가 들어가 있어서 필드 개수가 더 많아진 것임 ㅇㅇ




2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가,다)(구한전사택)",60.69,4,48000000

2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가,다)(구한전사택)",60.69,3,49000000

2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가,다)(구한전사택)",60.69,4,48000000




sed 로 " 안의 , 를 제거하였다. 




sed -e 's/\(".*\),\(.*"\)/\1 \2/g' sample.csv &> sample2.csv



-e 옵션은 정규식 옵션이고 

's/A/B/g' 는 A 패턴을 B 패턴으로 바꾸겠다는 것이다. 

()는 정규식 서브 패턴으로  A패턴에서 나오는 순서대로 B패턴에서 \1, \2 , 로 표시한다. 

참고로 \은 escape character이다.



위 식이 의미하는 것은 ,를 기준으로 앞의 "를 서브패턴1로 보고 

뒤 "를 서브패턴2으로 보아서 

최종적으로 " 아파트이름(문자열, 문자열) " 에서 ,를 제거하는 것이다. 


아래는 아래 정규식을 적용한 결과 파일이다. 





2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가 다)(구한전사택)",51.81,1,40000000

2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가 다)(구한전사택)",77.11,3,62000000

2016,01,4211011200,강원 춘천 춘천로64번길 21-0,강원,춘천,효자,,0,688,6,,"엘피스빌(가 다)(구한전사택)",77.11,4,60000000




이제 정상적으로 경고 없이 파일 내용이 테이블로 로드되었다. 






 



  • 2017.10.25 14:05 ADDR 수정/삭제 답글

    비밀댓글입니다

2020년 증시 휴장일





증시휴장일 기준 








1) 주말, 공휴일 (대체공휴일, 임시공휴일 포함)




2) 근로자의 날 (5월 1일) 




3) 매년 마지막 영업일 (보통 12월 31일, 31일이 공휴일 또는 주말이면 그 전날인 12월 30일) 




---------------------------------------------------------------------------------------------------------------------------------------------------------




2020년 증시개장일 시간 




증시 개장일은 1월 2일이며 평상시 장이 열리는 시간보다 한시간 늦은 10시에 시작해서

평소와 같이 오후 3시 30분에 종료한다. 


개장시각 연기는 증시 개장식에 따른 매매거래시간 임시 변경으로 

자세한 내용은 아래 표를 확인하면 된다. 








----------------------------------------------------------------------------------------------------------------------------------------------------------






증시휴장일 전체 날짜를 확인하려면 

네이버에서 증시휴장일 치면 간단하게 확인할 수 있다. 









아래는 한국거래서 홈페이지에서 (http://marketdata.krx.co.kr/mdi#document=01100305)


나온 휴장일정이다. 









데이터를 다운로드 받으려면  




시장동향->증시일정->휴장일 로 이동하여




검색 조건에서 한국거래소를 선택하여 다운로드를 선택하자. 




해당 파일은 아래에 있으니 필요한 사람은 받아가시길. 





data.xls