2016-07-11 2 views
1

조작해야하는 csv1.csv라는 항목이 10,000 개 이상있는 CSV 파일이 있습니다. 다른 사람들의 이메일 주소를 포함하는 모든 값을 11 번째 열로 변경하고 싶습니다. 내가 열 (11)에 지금이 :CSV 파일 쉘 스크립트에서 문자열의 끝을 삭제하는 방법은 무엇입니까?

전자 메일 주소

[email protected] 
[email protected] 
[email protected] 
[email protected] 

원하는 출력 : 나는 또한> 같은 다른 모든 (12) 열을 유지하고 재 사용할

Hi 
What 
Up 
lol 

다른 CSV 파일에 넣기. 그래서 본질적으로 오직 @ yahoo.com을 꺼내지 만 문자열 앞에서 무엇이든지 유지하십시오. 어떤 도움을 주시면 감사하겠습니다! 감사!

+0

추신. @ yahoo.com은 단지 예일 뿐이지 만 모두 동일한 이메일 주소를 가지고 있습니다. – Carbon

답변

3

는 AWK이 같은 특정 열을 수정할 수 있습니다 사용이 도움이 될

awk 'BEGIN{FS=OFS=","} {sub(/@.+/, "", $11)} 1' file.csv > newfile.csv 
+1

매력처럼 작동합니다! 고맙습니다! – Carbon

+0

방금 ​​파일의 값을 구분하는 모든 쉼표가 삭제되었음을 알았습니다. 그것은 단지 "@ yahoo.com"권리를 빼내기로되어 있습니까? – Carbon

+0

확인을 누르면 업데이트 된 답변을 시도합니다. – anubhava

0

희망.

cat csv1.csv | awk '{print $11}' | awk -F '@' '{print $1}' 
관련 문제