여러 행의 데이터가 포함된 .csv 파일이 있습니다. 문자열/레코드에서 특정 값을 검색하고 행 자체를 삭제해야 합니다.
예를 들어:
abc.csv
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000542,eeee,ffff,gggg,hhhh
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp
1000542를 검색하고 해당 숫자가 포함된 전체 행을 삭제해야 합니다.
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp
답변1
sed
다음을 사용하여 행을 삭제할 수 있습니다 .
sed -i '/1000542/d' abc.cvs
여기서 d
줄을 삭제하고 수정된 텍스트를 출력하는 것이 아니라 파일에 대해 작업을 수행 -i
하도록 지시하는 것은 검색하려는 패턴이며 파일 이름입니다.sed
1000542
abc.cvs
답변2
awk를 사용할 수도 있습니다.
awk '/1000542/ {next}1' infile > outfile
예:
$ awk '/1000542/ {next}1' file
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp
인쇄가 포함된 줄을 건너뜁니다 1000542
.