![sed를 통해 CSV에서 빈 필드가 있는 행 삭제](https://linux55.com/image/199885/sed%EB%A5%BC%20%ED%86%B5%ED%95%B4%20CSV%EC%97%90%EC%84%9C%20%EB%B9%88%20%ED%95%84%EB%93%9C%EA%B0%80%20%EC%9E%88%EB%8A%94%20%ED%96%89%20%EC%82%AD%EC%A0%9C.png)
두 개의 열이 있는 CSV 파일이 있습니다. 첫 번째는 ID(int)이고 두 번째는 텍스트입니다. 모든 행에는 ID 열이 있습니다. 두 번째 열이 비어 있는(길이가 0이거나 공백임) 파일을 삭제하고 싶습니다.
나는 노력했다
sed -i '/^[0-9]+,\s*$/d' file.csv
하지만 작동하지 않습니다.
답변1
확장 정규식을 이스케이프 +
하거나 사용하거나 \{1,\}
추가 해야 합니다 .-E
sed -i '/^[0-9]\+,\s*$/d' file.csv
sed -i '/^[0-9]\{1,\},\s*$/d' file.csv
sed -Ei '/^[0-9]+,\s*$/d' file.csv
또는 다음을 사용하십시오 grep
.
grep -v '^[0-9]\+, *$' file.csv
그러나 나는 적절한 csv 파서를 선호합니다.
csvgrep -S -c2 -r '.' file.csv