두 번째 필드에 단어가 포함된 .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"