두 번째 필드에 특정 패턴이 포함된 CSV의 행 삭제

두 번째 필드에 특정 패턴이 포함된 CSV의 행 삭제

두 번째 필드에 단어가 포함된 .csv 파일에서 행을 삭제하는 방법은 무엇입니까 content?

예:

ams-hbase-log4j,content:\n#LicensedtotheApacheSoftwareFoundation(ASF)underone\n#ormorecontributorlicenseagreements
ams-log4j,content:\n#\n#LicensedtotheApacheSoftwareFoundation(ASF)underone\n#ormorecontributorlicenseagreements.
ams-site,timeline.metrics.cache.size:150,

예상 출력

ams-site,timeline.metrics.cache.size:150,

답변1

sed두 번째 필드에 포함된 행을 사용하고 삭제하려면 content다음을 수행하세요.

sed '/^[^,]*,[^,]*content/d' infile

또는 두 번째 필드의 행을 삭제하세요.그리고 content:

sed '/^[^,]*,content/d' infile

답변2

awk -F, '$2 !~ /content/' file.csv

"두 번째 필드가 있는 행을 제거"를 의미하는 경우에 의해. . 시작그러면 "콘텐츠"

awk -F, '$2 !~ /^content/' file.csv

답변3

기본적으로 가장 간단한 방법으로 수행할 수 있는 작업은 다음과 같습니다.

cat "/dir/yourfile.csv" | grep -v ",content:" > newcsvfile.csv

동일한 파일 이름을 사용하려면 다음을 수행하십시오.

cat "/dir/yourfile.csv" | grep -v ",content:" > tmpfile && mv tmpfile "/dir/yourfile.csv"

관련 정보